使用大小初始化NSArray

Kat*_*lon 9 objective-c nsarray

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

for (int i = 0; i < [myArray count]; i++) {
    myArray[i] = someData;
}
Run Code Online (Sandbox Code Playgroud)

Aar*_*ger 9

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

NSMutableArray * myArray = [NSMutableArray array];

for (int i = 0; i < 100; i++) {
    [myArray addObject:someData];
}
Run Code Online (Sandbox Code Playgroud)

如果您提前了解尺寸,可以获得轻微的性能提升:

NSMutableArray * myArray = [NSMutableArray arrayWithCapacity:100];
Run Code Online (Sandbox Code Playgroud)

但这是可选的.


max*_*ax_ 2

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

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

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