シミュレーターでは完全に動作するアプリがありますが、iPod Touch(第4世代)では失敗します。その理由を知りたいのですが。UINavigationController
失敗しているのは、のルートに6つの画像を表示し、viewControllerを押して、食品画像の配列をインスタンス化し、すべての画像を並べて保持するビューを作成し、表示領域を移動するシンプルなインタラクティブメニューです。ルートビューでクリックされた画像に関連する画像の上。デバイスで実行すると、配列は2つの画像へのポインターでのみインスタンス化され、配列を使用して画像を並べて作成すると例外がスローされます。
//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>"
)
そして、範囲外のインデックスの標準エラーがあります。関連性があるかどうかはわかりませんが、シミュレーターで動作しているにもかかわらず、2つのアイコンがデバイスに読み込まれていません。さらにコードが必要な場合、またはアプリやその動作について質問がある場合は、お知らせください。さらに追加させていただきます。
編集:画像が配列にインスタンス化される順序を並べ替えてみましたが、何も変更されていません。出力stllは、2つの画像のみが配列によって示されていることを示しました。