如果对象具有类型NSString或属性NSNumber,哪个更好,retain或copy?
我认为这些对象是不可变的,(不能改变对象的状态)所以复制更好?
我看到为什么复制更好,分配NSMutableString并更改它的例子,但没有NSMutableNumber.然后在的情况下NSNumber,我最好使用retain到NSNumber的对象?
如果copy是因为更好的NSString和NSNumber具有小内存占用,怎么样,如果属性NSArray类型?
NSArraytype也是不可变的,在NSArray属性中使用copy怎么样?
使用不可变对象,复制.
对于像大多数NSStrings这样的不可变对象,-copyWithZone:是有效的
-(id) copyWithZone: (NSZone*) zone
{
return [self retain];
}
Run Code Online (Sandbox Code Playgroud)
因此开销很小.
对于可变对象,可能是复制但是使用大型可变对象(如字符串和大型可变数组),您需要根据对代码进行分析来进行判断调用.当然,对于可变对象,您可能需要原始对象,因为您可能希望查看原始对象中的更改.
| 归档时间: |
|
| 查看次数: |
1855 次 |
| 最近记录: |