ios – objective-c中复制属性的自定义setter

前端之家收集整理的这篇文章主要介绍了ios – objective-c中复制属性的自定义setter前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我是否必须使用 objective-c中的copy属性手动复制自定义setter中的对象?
例如,

我有一个属性

@property (copy,nonatomic) NSString *someString;

自定义setter:

- (void)setSomeString:(NSString *)someString
{
  //option 1
  _someString = someString;
  //option 2
  _someString = [someString copy];
  //do other stuff
}

自定义setter的选项1还是我必须使用选项2才能复制对象?

解决方法

你可以做任何你喜欢的事,但你应该使用第二个选项.
这是因为它会像代码文档一样,如果其他开发人员看到它,他或她会知道你只是通过查看来复制字符串:
@property (copy,nonatomic) NSString *someString;

如果您使用retain / assign,则最佳做法是在自定义setter中保留/分配对象.它将使您的代码更清晰,更有文档记录,并且对其他开发人员来说更容易理解.

猜你在找的iOS相关文章