Ada*_*nst 63 properties objective-c
我想使用@property语法声明一个公开只读的合成属性,但有一个可以在类中私下调用的setter.
由于它是Objective-C,这基本上意味着该setFoo:方法将被合成,但在类本身之外调用它将导致警告(无法识别的选择器).要触发警告,我必须申报该财产readonly; 有没有办法强制合成的setter只在类中可用?
小智 102
我认为你正在寻找的是类扩展.您可以在标头中将该属性声明为只读:
@interface MyClass : NSObject {
}
@property (readonly, assign) NSInteger myInteger;
@end
Run Code Online (Sandbox Code Playgroud)
然后在实现文件中的类扩展中重新声明:
@interface MyClass ()
@property (readwrite, assign) NSInteger myInteger;
@end
@implementation MyClass
@end
Run Code Online (Sandbox Code Playgroud)