【发布时间】:2014-12-09 00:23:46
【问题描述】:
如何初始化一个只有 size 的 NSArray,以便以后使用 for 循环来填充它?我的 for 循环是
for (int i = 0; i < [myArray count]; i++) {
myArray[i] = someData;
}
【问题讨论】:
-
所以所有的答案都说我必须使用 NSMutableArray 而不是 NSArray。这是否意味着我不能直接使用 NSArray 来解决这个问题?
-
一个 NSArray 是不可变的,这意味着它的内容将来不能被编辑。这也可以防止任何对象被添加到数组中或从数组中删除,因此它的长度将始终保持不变。另一方面,NSMutableArray 是可变的,因为即使在初始化之后,也始终可以在任何给定时间添加或删除对象。
-
我的限制是我不希望大小不经意地改变,但同时,我希望用户能够更新值。该数组是一个布尔数组。我来自 Java,所以你理解我的烦恼。 NSMutableArray 意味着大小可以增长。那么如何在允许值可变的同时防止大小的无意更改?
-
@KatedralPillon 你不能用任何内置类做到这一点。如果您愿意,可以将
NSMutableArray包装在您自己的类中或子类中。 -
如果你只是存储 BOOL,你可以使用 C 数组。
标签: objective-c nsarray