使用大小初始化NSArray

时间:2014-12-09 00:23:46

标签: objective-c nsarray

如何仅使用大小初始化NSArray,以便稍后使用for循环填充它?我的for循环将是

for (int i = 0; i < [myArray count]; i++) {
    myArray[i] = someData;
}

2 个答案:

答案 0 :(得分:9)

您不需要使用特定尺寸对其进行初始化 - 您可以稍后添加对象:

NSMutableArray * myArray = [NSMutableArray array];

for (int i = 0; i < 100; i++) {
    [myArray addObject:someData];
}

如果您提前知道尺寸,则会有轻微的性能提升:

NSMutableArray * myArray = [NSMutableArray arrayWithCapacity:100];

但这是可选的。

答案 1 :(得分:2)

NSNull是用于表示未设置,无效或不存在的对象的类。因此,您可以使用此类的实例将数组填充到特定大小。

NSUInteger sizeOfArray = 10;
NSMutableArray *someArray = [NSMutableArray array];
for (NSUInteger i = 0; i < sizeOfArray; i++) {
    [someArray addObject:[NSNull null]];
}

此外,如果位置someArray[i] = xyz;的值不存在,则无法使用语法i,因为它会导致越界错误。