我想看看保留,分配和复制setter和getter方法的代码,任何人都可以指导我一些有用的堆栈溢出帖子或任何其他教程链接。提前和问候 萨阿德·艾哈迈德
答案 0 :(得分:1)
您通常需要声明实例变量的所有权。请参阅Objective-C内存管理规则。使用保留属性,您的财产设置者声明拥有新值,并放弃旧值的所有权。使用assign属性,周围的代码必须这样做,这在责任和关注点分离方面同样糟糕。您将使用assign属性的原因是您无法保留该值(例如BOOL或NSRect等非对象类型),或者保留它会导致不必要的副作用。
顺便说一下,在NSString的情况下,正确的属性通常是复制。这样,如果有人传入NSMutableString(它是有效的 - 它是一种NSString),它就无法从你的下方改变。
快来看看这些链接。希望你能更好地理解这些链接 -
Objective-C 101 (retain vs assign) NSString
答案 1 :(得分:1)
本指南解释了相当不错的原则。我自己用它作了几次参考。
http://blog.ablepear.com/2010/04/objective-c-tuesdays-instance-variables_20.html