NSMutableArray arrayWithObjects的问题:

时间:2009-11-05 11:18:08

标签: cocoa nsmutablearray

NSMutableArray *images = [NSMutableArray arrayWithObjects:[UIImage imageNamed:@"JGirl 01.jpg"],
    [UIImage imageNamed:@"JGirl 03.jpg"], ... ,
    [UIImage imageNamed:@"JGirl 48.jpg"],
    nil];

self.view = [[[SlideShowView alloc] initWithImages:images byIndex:index] autorelease];

假设我的图像包含48个对象,但是当我调试图像时只有23个对象。

为什么我的所有图片都没有加载?

2 个答案:

答案 0 :(得分:9)

听起来像nil-termination的问题。 如果你的一个图像对象(可能是第24个)由于名称中的拼写或损坏/不存在的图像文件而返回nil,它将像最终的“nil”一样终止列表并且你的数组将会之后忽略一切。这是arrayWithObjects:和dictionaryWithObjectsAndKeys:

的常见缺陷

答案 1 :(得分:1)

你真的不应该在iPhone OS上将那么多图像加载到内存中,当你这样做时,你必须加载图像的整个RGB表示,考虑到资源,这不是你想做的事情。对设备的限制。