我是否必须在Objective-C中使用具有复制属性的自定义 setter 手动复制对象?
例如,
我有一个属性(property):
@property (copy, nonatomic) NSString *someString;
和自定义二传手:
- (void)setSomeString:(NSString *)someString
{
//option 1
_someString = someString;
//option 2
_someString = [someString copy];
//do other stuff
}
选项1是否足以用于自定义 setter ,或者我必须使用选项2才能复制对象?
最佳答案
您可以做任何您想做的事,但应该使用第二种选择。
这是因为,如果其他开发人员看到它,它将像代码文档一样,他或她将知道您仅通过查看以下内容即可复制字符串:
@property (copy, nonatomic) NSString *someString;
如果使用保留/分配,则相同,最佳做法是在自定义 setter 中保留/分配对象。它将使您的代码更清晰,文档更丰富,其他开发人员也更容易理解。
关于ios - Objective-C中用于复制属性的自定义 setter ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23103319/