如何动态填写NSArray?

Tha*_*nks 15 iphone objective-c uikit nsmutablearray nsarray

我有一个for循环.在那个循环里面,我想填充NSArray一些对象.但我没有看到任何让我这样做的方法.我事先知道有多少物品.我想避免使用NSMutableArray,因为有些人告诉我这是一个非常大的开销和性能制动相比NSArray.

我有这样的事情:

NSArray *returnArray = [[NSArray alloc] init];
for (imageName in imageArray) {
    UIImage *image = [UIImage imageNamed:imageName];
    //Now, here I'd like to add that image to the array...
}
Run Code Online (Sandbox Code Playgroud)

我查看了文档NSArray,但是如何指定那里有多少元素?或者我必须真的用NSMutableArray它吗?

Aln*_*tak 28

是的,你需要使用NSMutableArray:

int count = [imageArray count];
NSMutableArray *returnArray = [[NSMutableArray alloc] initWithCapacity:count];
for (imageName in imageArray) {
    UIImage *image = [UIImage imageNamed:imageName];
    [returnArray addObject: image];
    ...
}
Run Code Online (Sandbox Code Playgroud)

编辑 - 声明已修复