【发布时间】:2013-09-13 20:43:30
【问题描述】:
我需要一些帮助来了解如何使用 NSArrays / NSMutableArrays 作为属性。
- 数组应该是什么属性:强或复制?在什么情况下我应该使用哪个属性?
- 如何在代码中初始化数组。
- 我的属性数组应该是 NSArray 还是 NSMutableArray
目前我的做法有两种不同的方式,如下所示。但这一切都是零散的,并且没有清楚地了解它的机制。哪一项是正确的还是错误的。
方法 1
.m file
interface()
@property (nonatomic, strong) NSMutableArray *arrayOfData;
implementation
<....other code>
self.arrayOfData = [NSMutableArray arrayWithCapacity:count];
[self.arrayOfData addObject:<my object>]
方法 2
.h file
@property (nonatomic, strong) NSArray *arrayOfData;
.m file
//Property setter
- (void)setListOfData:(NSMutableArray *)newList {
if (_arrayOfData != newList) {
_arrayOfData = [newList copy];
}
}
//Function which initializes the arrayOfData
NSMutableArray *newData = [[NSMutableArray alloc] init];
.....<code which adds data>
self.arrayOfData = newData;
【问题讨论】:
-
这太笼统了。我可以为你的每一个问题写一本书的一整章。
-
您需要指定这是一个创建为空并随时间修改的数组,还是一个概念上(如果不是实际上)只读的数组,在创建时完全初始化,并且以后永远不会修改.
-
正在修改数组。我正在使用 addObject 将数据添加到数组中。我的困惑是如何实际初始化它,当我在代码中使用方法1或方法2时,即在setter / getter之外
标签: objective-c nsmutablearray nsarray