我有以下代码:
NSMutableArray *imageArray = [[NSMutableArray alloc] init];
for(int i = 1; i <= 32; i++) {
//NSString *str = [NSString stringWithFormat:@"marker_%i.png", i];
NSString *str = [NSString stringWithFormat:@"wave%i.png", i];
UIImage *img = [UIImage imageNamed:str];
if(img != nil) {
[imageArray addObject:img];
}
}
NSLog(@"imageArray count %i",[imageArray count]);
NSMutableArray *reverseArray = [NSMutableArray arrayWithArray:imageArray];
[[reverseArray reverseObjectEnumerator] allObjects];
[imageArray addObjectsFromArray:reverseArray];
NSLog(@"imageArray count %i",[imageArray count]);
如果我在iPhone上运行它,则会得到:
2013-05-12 15:21:08.539 RouteApp[5673:907] imageArray count 23
2013-05-12 15:21:08.545 RouteApp[5673:907] imageArray count 46
而如果我在模拟器中运行,我将得到32和64的期望值。
(如数字已切换)
是什么原因造成的?
最佳答案
看起来有些图像在iPhone上丢失了,所以这一行
if(img != nil) {
[imageArray addObject:img];
}
过滤掉它们。如下更改此行以查看哪些图像不存在:
if(img != nil) {
[imageArray addObject:img];
} else {
NSLog("Image 'wave%i.png' is missing", i);
}
关于ios - 模拟器中的阵列大小与iPhone上不同,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16507836/