Xcode プロジェクトに 2 つの for ループがあり、9 つの UIImageView で画像を変更するために使用しています。これらの UIImageViews 内の画像は、サーバーからダウンロードされてから表示されます。
私の for ループは、3 つの異なる整数を使用して、どの画像を表示するかを決定します。next、current_photo、previous は整数です。
次と前の画像セットの表示を制御する 2 つの UIButtons があります。
次の一連の画像を表示する場合は、次の for ループを作成して使用します。
NSArray *imageViews = @[picview_1, picview_2, picview_3, picview_4, picview_5, picview_6, picview_7, picview_8, picview_9];
for (next = current_photo; next < (current_photo+9); next++) {
NSString *next_set = [NSString stringWithFormat:@"%@%i.%@", SERVER_URL, next+1, FORMAT_TYPE];
NSData *imageData = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString: next_set]];
UIImage *image = [[UIImage alloc] initWithData:imageData];
[[imageViews objectAtIndex:(next-9)] setImage:image];
}
current_photo = next;
このforループは完全に機能し、9つのUIImagesViewsすべてが画像を変更します。
ただし、9 つの UIImageViews で以前の画像セットを表示したい場合、次の for ループは何らかの理由で正しく機能しません。
NSArray *imageViews = @[picview_1, picview_2, picview_3, picview_4, picview_5, picview_6, picview_7, picview_8, picview_9];
for (previous = current_photo; previous > (previous-9); previous--) {
NSString *next_set = [NSString stringWithFormat:@"%@%i.%@", SERVER_URL, previous+1, FORMAT_TYPE];
NSData *imageData = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString: next_set]];
UIImage *image = [[UIImage alloc] initWithData:imageData];
[[imageViews objectAtIndex:(previous-previous)] setImage:image];
}
current_photo = previous;
for ループの何が問題になっていますか? 説明してください。
以下は、私のアプリを開いたときに何が起こるかです:
次のボタンを押すと、次のようになります。
最後に、戻るボタンを押すと、アプリがフリーズします.....
なんで?どうしたの?助けてください。
御時間ありがとうございます :)