これがばかげた質問である場合は申し訳ありませんが、私は iOS 開発に非常に慣れていません。だからここに質問があります:
に を追加するSecondView
とFirstView
、メモリが割り当てられますが、削除すると、割り当てられたメモリのすべてが解放されるわけではありません。
コードは次のとおりです。
ファーストビュー:
@interface FirstView : UIViewController
@property (nonatomic, retain) SecondView *secondView;
- (IBAction)loadSecondView;
@end
@implementation ViewController
@synthesize editView;
- (IBAction)loadSecondView{
secondView = [[SecondView alloc]init];
[self presentModalViewController:editView animated:YES];
}
- (void)viewWillAppear:(BOOL)animated{
[secondView release]; secondView = nil; //this is called after SecondView is removed
}
セカンド ビュー:
@interface SecondView : UIViewController
@end
@implementation EditView
-(void)viewDidLoad{
for (int intCounter = 0; intCounter < 10000; intCounter++){
UIImageView *image = [[UIImageView alloc]init]; //create 10000 images just to fill up the memory
[self.view addSubview:image];
[image release]; image = nil;
}
}
@end
以下は、Instruments (Live Bytes) から取得した数値です。
- FirstView の読み込み: 671 KB
- SecondView ロード: 3.28 MB
- 削除された SecondView: 809 KB
注: 機器は漏れを示していません
Liveバイトは初期値(671KB)にすべきではないでしょうか?809 KB の代わりに何が残っていますか?