创建一个空的NSArray

sam*_*fer 5 arrays initialization declaration nsmutablearray nsarray

在CI中可以简单地声明一个这样的数组:

int array[500]; 
Run Code Online (Sandbox Code Playgroud)

声明一个大小为500的数组,然后可以在以后填充.是否有可能在NSArray中做同样的事情?我理解NSMutableArray有一个arrayWithCapacity类方法来"创建"和空数组(或至少声明稍后要填充的数组).有没有办法为NSArray做类似的事情,因为我知道我希望稍后在"for"循环中填写内容的数组的确切大小.

谢谢

das*_*ght 2

从技术上讲,int array[500];不会创建空数组 - 它会创建一个全是零的数组。由于s 是不可变的,因此如果您希望稍后能够填充它,则NSArray确实需要使用它。NSMutableArray

您可以创建一个具有特定容量的数组,然后将对象放入其中,如下所示:

NSMutableArray *array = [NSMutableArray arrayWithCapacity:500];
for (int i = 0 ; i != 500 ; i++) {
     [array addObject:@(i)];
}
Run Code Online (Sandbox Code Playgroud)

由于NSMutableArray是 an NSArray,您可以在方法 as 中创建它NSMutableArray*,然后将其返回NSArray*给调用者。