iHS*_*iHS 1 iphone cocoa cocoa-touch objective-c ios
我想要一个可变数组,并通过一个属性设置它,替换是更好的,请解释原因.我有两个选择
NSMutableArray *arrSubTitles_temp = [[NSMutableArray alloc] initWithObjects:
@"String 1",
@"String 2",nil];
self.arrSubTitles = arrSubTitles_temp;
[arrSubTitles_temp release];
Run Code Online (Sandbox Code Playgroud)
要么
NSArray *arrSubTitles_temp = [[NSArray alloc] initWithObjects:
@"String 1",
@"String 2",nil];
self.arrSubTitles = [arrSubTitles_temp mutableCopy];
[arrSubTitles_temp release];
Run Code Online (Sandbox Code Playgroud)
我猜第一个更好,因为self.arrSubTitles属性保留在.h中,所以(在第二个)mutableCopy方法将提供可变数组,但在这种情况下保留计数将是2.
哪种方法更可取,我应该在设置属性时使用retain.还是仅指定.请建议.
提前谢谢了 :)
retain为你的财产属性,除非你有一个很好的理由不(例如:retain会导致保留周期,这是一个原始的,你需要保证的对象是不可改变的,等等)如果您使用assign属性属性,那么第一个选项可能会崩溃:
然而,第二个将起作用:
无论如何,拥有一个assign房产然后自己管理价值的保留是相当不寻常的.这非常容易出错,并且将属性声明为更简单,retain并让生成的setter 为您处理release/ retaindance.
| 归档时间: |
|
| 查看次数: |
3381 次 |
| 最近记录: |