2012-05-03 14 views
1

ImはXコードに新しく、どこでも検索していて、運がまったくない "すべて"を試しています。 私を助けることができるなら私はあなたに歌を歌います:)IOS:ビュー間の切り替え時にメモリフットプリントが増加します(ARC対応)

私はたくさんのメモリを使うIPadアプリを作っています。プロジェクトのサイズは約100MB(多くの画像)ですが、アクティビティモニタは、Iveがすべてのビュー(xibファイル)を切り替えた後、最大140MBの「実メモリ」を使用していることを示しています。(

私はビュー(xibファイル)を切り替えます。ARCが有効になっているので、前のビューをメモリから解放することはできません。 -files:

viewController2 *view2 = [[viewController2 alloc] initWithNibName:@"viewController2" bundle:nil]; 
view2.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; 
[self presentModalViewController:view2 animated:YES]; 

私は背中や次のビューに切り替えると、私は同じ種類のコードを使用し

Iveは[self dismissModalViewControllerAnimated:NO];,[self.view removeFromSuperview];,self.view = nil;を使用してみましたが、メモリは増加を続けます。

私が理解しているように、ビューはお互いの上に積み重なってメモリを増加させます。

次のビュー(xib-file)に切り替えると同時に、最初のビューのメモリ使用を強制終了できますか?

この問題は、私は:(

答えて

1

私は40の、いくつかの異なる全画面表示コントローラとアプリを持っているすべての私の髪を引っ張ってきた。それは、各スライドの相互作用のいくつかの並べ替えを持っているインタラクティブなスライドショーのようなものだ。私は、私は、新しいビューコントローラを子ビューコントローラとして追加し、新しいビューコントローラのビューをビューコントローラとして追加することで、あるビューコントローラから次のビューコントローラに移行します。マスタービューコントローラビューのサブビュー:

[self addChildViewController:newView]; 
[self.view addSubview:newView.view]; 

selfはマスタビューコントローラです。次に、UIViewtransitionWithView:duration:options:animations:completion:クラスメソッドを使用して新しいビューを表示します。完了ブロックではビューとビューコントローラは、(限り、これらのオブジェクトへの他の強い参照がないとして)ARCは、そのメモリを処分することができ、削除されます氏ベルナありがとう

void (^theCompletion)(BOOL) = ^(BOOL finished) { 
    [oldView.view removeFromSuperview]; 
    [oldView removeFromParentViewController]; 
}; 
+0

私が把握しようとします私のプロジェクトであなたのコードを使う方法:D – user1373293

関連する問題