我有一个在模拟器上运行良好的应用程序,但在我的 iPod Touch(第 4 代)上失败了,我想知道为什么。失败的部分是一个简单的交互式菜单,它在 a 的根上显示六张图片UINavigationController
,然后推送一个 viewController 实例化一组食物图像,创建一个并排保存所有图像的视图,并移动查看区域在与在根视图中单击的图像相关的图像上。当我在设备上运行它时,该数组仅使用指向两个图像的指针进行实例化,并且当该数组用于并排创建图像时会引发异常。
//code from the pushed view controller
- (void)setupScrollView:(UIScrollView*)scrMain {
// we have 6 images here.
// we will add all images into a scrollView & set the appropriate size.
NSMutableArray *array = [NSArray arrayWithObjects:
[UIImage imageNamed:@"shrimpquesadilla.jpg"],
[UIImage imageNamed:@"pulledpork.jpg"],
[UIImage imageNamed:@"filetMignon.jpg"],
[UIImage imageNamed:@"Reuben.jpg"],
[UIImage imageNamed:@"cajunshrimp.jpg"],
[UIImage imageNamed:@"primerib.jpg"], nil];
NSLog(@"stuff: %@", array);
for (int i=1; i<=6; i++) {
UIImage *image = [array objectAtIndex:(i-1)];
UIImageView *imgV = [[UIImageView alloc]
initWithFrame:CGRectMake((i-1)*scrMain.frame.size.width,
0, scrMain.frame.size.width, (scrMain.frame.size.height - 90))];
imgV.contentMode=UIViewContentModeScaleToFill;
[imgV setImage:image];
imgV.tag=i+1;
[scrMain addSubview:imgV];
}
[scrMain setContentSize:CGSizeMake(scrMain.frame.size.width*6,
scrMain.frame.size.height)];
[scrMain scrollRectToVisible:CGRectMake(self.count*scrMain.frame.size.width,
0, scrMain.frame.size.width, scrMain.frame.size.height) animated:YES];
}
通过模拟器运行时 NSLog 的输出:
2012-08-20 09:51:23.812 DemoTabbed[1545:11603] stuff: (
"<UIImage: 0x7931150>",
"<UIImage: 0x6e63270>",
"<UIImage: 0x6e67700>",
"<UIImage: 0x6e68040>",
"<UIImage: 0x6e5c700>",
"<UIImage: 0x6e64210>"
)
在设备上运行时的输出:
2012-08-20 10:26:50.211 DemoTabbed[2128:707] stuff: (
"<UIImage: 0x197e20>",
"<UIImage: 0x181270>"
)
然后是索引超出范围的标准错误。我不知道它是否相关,但我的两个图标也没有加载到设备上,尽管它们在模拟器上工作。如果您需要更多代码,或者您对应用程序或其行为有疑问,请告诉我,我很乐意添加更多代码。
编辑:我尝试重新排列将图像实例化到数组中的顺序,但它没有改变任何内容。输出 stll 显示该数组仅指向两个图像。