我有以下代码:
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,就像我期望的那样。 (就像数字被切换一样)
导致这种情况的原因是什么?
答案 0 :(得分:2)
看起来iPhone上缺少一些图像,所以这一行
if(img != nil) {
[imageArray addObject:img];
}
过滤掉它们。如下更改此行以查看哪些图像不存在:
if(img != nil) {
[imageArray addObject:img];
} else {
NSLog("Image 'wave%i.png' is missing", i);
}
答案 1 :(得分:0)
设备上的文件名区分大小写,但不在模拟器上。您的某些图像名称可能与您期望的格式略有不同。
最常见的方式是wave01.png
与wave01.PNG
。
否则它可能类似于wave01.png
与Wave01.png
等等。