加载应用程序后,我正在将图像延迟加载到数组中。我尝试过使用 NSMutableArray 和 NSArray (一旦创建数组,我就不需要更改数组),但后者在我身上崩溃了。
...
[self performSelectorInBackground:@selector(loadImageArrays) withObject:nil];
...
- (void)loadImageArrays {
NSAutoreleasePool *pool;
pool = [[NSAutoreleasePool alloc] init];
NSString *fileName;
imageArray = [[NSMutableArray alloc] init];
for(int i = 0; i <= x; i++) {
fileName = [NSString stringWithFormat:@"image_0000%d.png", i];
[imageArray addObject:[UIImage imageNamed:fileName]];
}
[pool drain];
}
对比
NSAutoreleasePool *pool;
pool = [[NSAutoreleasePool alloc] init];
imageArray = [[NSArray alloc] initWithObjects:
[UIImage imageNamed:@"image_00000.png"],
[UIImage imageNamed:@"image_00001.png"],
[UIImage imageNamed:@"image_0000X.png"],
nil];
[pool drain];
NSZombieEnabled = YES 告诉我 [UIImage retain] 在使用后一个代码片段时被发送到释放的实例。两个数组在我的 h 文件中都有 (nonatomic, retain) 属性。为什么 NSArray 不保留图像?