我试图使用Xcode中新增的客观c类扩展头(仅.h)模板。我不知道该怎么办。好吧,我做了File-> New File-> Objective C类扩展头,并给它起了一个名字“UICodeButton”,它继承自UIButton。现在在该.h文件中,我写了@property(读)NSInteger * cID;并位于该实现的下方,如下所示:
#import <UIKit/UIKit.h>
@interface UIButton ()
@property (readwrite) NSInteger * codeID;
@property (readwrite) NSInteger * pID;
@property (readwrite) NSString * cDesc;
@property (readwrite) NSString *pDesc;
@end
@implementation UIButton
@synthesize codeID;
@synthesize pID;
@synthesize cDesc;
@synthesize pDesc;
@end
我在viewcontroller class..so中使用此文件,所以我有(ViewCP.h和ViewCP.m)文件。在.m文件中,我正在导入#import“UIButton_UICodeButton.h”
在此文件中,我正在视图中写入并加载了以下内容
- (void)viewDidLoad
{
NSInteger tt = (NSInteger) S_B_T;
NSLog(@" the value is %d",tt);
self.btnJobType.pID = &(tt);
}
输出:
值是555
我在定义中将S_B_T设置为555。
当它击中self.btnJobType.pID =&(tt);引发错误
*由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'-[UIRoundedRectButton setPID:]:无法识别的选择器发送到实例。所以我没有写正确的东西。我应该在哪里写pID的set方法?我以为综合
pID可以解决问题。但显然不是。那我该如何进行呢?我搜索了“ objective-c 类扩展”的示例。但是找不到任何示例。如果需要更多信息,请告诉我。谢谢
最佳答案
禁止您在未实现的类上创建类延续(例如@interface SOMEClass ()
)。因此,您不能将字段/属性添加到框架类。当然,您可以使用类别添加类方法或实例方法。
取而代之的是,您将创建一个子类,然后在其中添加属性/属性。