![](/img/trans.png)
[英]objective-c ARC readonly properties and private setter implementation
[英]Objective-C property that is readonly publicly, but has a private setter
我想使用@property
语法声明一个公开只读的合成属性,但是有一个可以在类中私下调用的setter。
由于它是Objective-C,这基本上意味着将合成setFoo:
方法,但是在类本身之外调用它将导致警告(无法识别的选择器)。 要触发警告,我必须readonly
声明属性; 有没有办法强制合成的setter只在类中可用?
我可能会迟到,但没有扩展我使用了以下技术
@interface MyClass : NSObject {
NSString * name;
}
@property (readonly, strong) NSString * name;
@end
另一方面在实现文件中
@implementation MyClass
@synthesize name;
- (id)initWithItems:(NSDictionary *)items {
self = [super init];
if(self)
{
name = @"abc";
}
return self;
}
@end
这样做,它将设置您的价值,并将以只读方式访问。 谢谢。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.