![](/img/trans.png)
[英]How to implement @property(class, readonly, copy, nonatomic) NSArray<NSString *> * _Nullable readableTypeIdentifiersForItemProvider;
[英]When a property is readonly, is copy and nonatomic meaningless?
假設我有屬性
@property (readonly) NSString* p1;
@property (readonly, copy) NSString* p2;
@property (readonly, nonatomic) NSString* p3;
它們之間有什么區別嗎?
我認為沒有區別因為“復制”和“非原子”沒有效果,因為setter方法不存在。
存在差異,它將影響生成的getter的行為方式。
像這樣的東西:
@property (readonly) NSString* p1;
- (NSString *)p1 {
@synchronized(self) {
return _p1;
}
}
@property (readonly, copy) NSString* p2;
- (NSString *)p2 {
@synchronized(self) {
return [_p2 copy];
}
}
@property (readonly, nonatomic) NSString* p3 {
- (NSString *)p3 {
return _p3;
}
是的,它們是不同的,因為可以使用類別添加setter。
順便說一句,您應該始終為NSString屬性指定copy
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.