IOS 6 でカタログ アプリケーションを使用しています。そのため、各ビューにいくつかの UIImageView があります。
他のビューに渡すと、古いイメージビューは解放されないと思います。だから私の本当のMem。300MBと仮想メモリになります。500MB になり、メモリの警告が表示されます。
以前使っていた
- (void)viewDidUnload
{
[super viewDidUnload];
itemImageView = nil;
scrollView = nil;
}
もっとどうすればいいですか?私は何かいつものことを見逃していますか?
アップデート:
次のように ImageView を初期化しています。
__block UIImageView *imageview = [[UIImageView alloc] init];
AFNetworking 経由で設定します。
AFImageRequestOperation *operation = [AFImageRequestOperation imageRequestOperationWithRequest:imageRequest
imageProcessingBlock:nil
cacheName:@"nscache"
success:^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image){
imageview.image = image;
}
failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error){ NSLog([error description]); }
];
アップデート:
ストーリーボードを使用しています。したがって、ある観点から見ると、私はセグエを使用しています。最初のコントローラーに戻ると、2 番目のコントローラーの viewDidUnload は呼び出されません。もう一度 2 番目のビューに移動すると、メモリが増加します。つまり、2 番目のビューのすべての画像ビューが再度読み込まれます。どこが間違っていますか?
更新 2: ストーリーボードとプッシュ セグエに関するものだと思い始めています。最初のビューに戻るために、プッシュ セグエを使用しています。2 番目のビュー コントローラーをポップする別のカスタム セグエを作成します。