我是否必须在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/

10-10 21:14