sen*_*thu 30 copy objective-c nsstring retain
是什么区别copy,并retain为NSString?
- (void)setString:(NSString*)newString
{
string = [newString copy];
}
Run Code Online (Sandbox Code Playgroud)
Mal*_*eur 46
在一般设置中,保留对象会使其保留计数增加1.这将有助于将对象保留在内存中并防止其被吹走.这意味着,如果您只保留其保留版本,则与任何传递给您的人共享该副本.
无论如何复制对象都应该创建具有重复值的另一个对象.将此视为克隆.你不与任何传递给你的人分享克隆.
NSString特别是在与s 打交道时,你可能无法假设任何给你的人NSString都是真的给你一个NSString.有人可能会给你一个子类(NSMutableString在这种情况下),这意味着他们可能会修改封面下的值.如果您的应用程序依赖于传入的值,并且有人对您进行更改,则可能会遇到麻烦.
这是一个老帖子,但这是我对这个问题的看法
保留将对象的保留计数增加1并获取对象的所有权.
复制将复制存储器位置中存在的数据,并将其分配给变量,因此在复制的情况下,您首先从一个位置复制数据,将其分配给变量,这会增加保留计数.
请记住,保留适用于引用和复制工作的价值
| 归档时间: |
|
| 查看次数: |
27562 次 |
| 最近记录: |