@interface Employee ()
@property (nonatomic) unsigned int employeeId;
@end
我认为这将允许我在main.m中执行以下操作:
Employee emp = [[Employee alloc] init];
//use some other property accessor methods...
[emp setEmployeeId:123456];
//do some other stuff...
但是编译器对setEmployeeId
的使用扼杀了以下错误"No visible interface for 'Employee' declares the selector 'setEmployeeId.'
有谁能告诉我为什么我不能像使用其他属性那样使用扩展名?谢谢你的帮助!!!
答案 0 :(得分:3)
因为您的employeeId
属性是私有的'如果您已使用类的.m文件中的延续类别声明它。这意味着编译器不会看到'编译期间的定义 - 因此是数组。
从技术上讲,您仍然可以在运行时使用KVC访问它,但您应该确定该属性是公共还是私有。
如果您正在测试/搞乱,那么您可以在本地类别中重新声明该属性,以使其在编译期间可见。