私は最初のアプリをほぼ完成させました (長い道のりですが楽しい時間です)
アプリのメモリ使用量を減らすために1週間試していますが、それがうまくいかない場合は、使用後にビューの割り当てを解除したいのですが、それが起こらないことがわかります...
searchviewController にメモリの問題はありませんが、100 MB の RAM を使用する DetailsViewController の方が多くなっています。
私のアプリがどのように構築されているかを要約して示します。
Searchview controller
The main screen --> UIViewController with tableview
in the didSelectRowAtIndex i have:
DetailsViewController *controller = [[DetailViewsController alloc]initWithNibName:@"DetailsViewController" bundle:nil];
SearchResult *searchResult = [searchResults objectAtIndex:indexPath.row];
controller.searchResult = searchResult;
DetailsViewController
詳細画面は、行を選択すると呼び出されます。サブビュー (カスタム スクロールビュー) を持つ UIview カスタム スクロールビューには icarousel (カスタム uiview) があります。
.h
@property (nonatomic,weak) SearchResult *searchResult;
.m
@property (nonatomic, retain) iCarousel *carousel;
@property (nonatomic, retain) UINavigationItem *navItem;
実装:
MGBox *tablesGrid, *table1;
ViewDidLoad:
//Add barButton
UIBarButtonItem *reactButton = [[UIBarButtonItem alloc]..];
carousel = [[iCarousel alloc] init..];
//Add Tablesgrid
tablesGrid = [MGBox boxWithSize:tablesGridSize];
tablesGrid.contentLayoutMode = MGLayoutGridStyle;
[self.scrollview.boxes addObject:tablesGrid];
//Add Table
table1 = MGBox.box;
[tablesGrid.boxes addObject:table1];
この後、searchResult をラベルに追加して icarousel (最大 6 項目) を埋める関数があります。icarousel は、scrollview などにサブビューとして追加した uiview です。
navigationBar を押し戻してメイン ビュー コントローラに戻ると、ビューの割り当てが解除されません。なぜですか? (dealloc をログに記録しましたが、呼び出されることはありません)。メモリ警告の後、ViewDidUnload を呼び出し、一部のメモリを解放しますが、まだ解放されません....
私は右の他のオブジェクトへの参照を持っていませんか? searchResult を除いて、私はそれを弱いものに設定したので、参照するべきではありませんか?
いくつかの情報:
メインビューで検索した後、私は持っています:
ライブ バイト: 5,75 mb リビング: 27.342 トランジストリ: 68.200 全体のバイト: 25.30 mb
行を選択して detailsViewController に入ると、次のようになります。
ライブ バイト: 5.4 MB リビング: 32.498 トランジストリ: 76.488 バイト全体: 29.55 MB
icarousel のサブビュー行をドラッグした後 (写真を見て):
ライブ バイト: 5.5 mb リビング: 32.798 トランジストリ: 122.850 全体のバイト: 36.41 MB
カスタム テーブル ビューでいくつかのテーブルを選択した後
ライブ バイト: 5.7 MB リビング: 33.508 トランジストリ: 161.80 バイト全体: 40.12 MB
アプリでリンクを開いて戻った後 (モーダル ビューで開き、もう一度閉じます)
ライブ バイト: 6.7 MB リビング: 43.821 トランジストリ: 371.761 バイト全体: 144.95 MB
写真をクリックして写真を全画面表示にし、再び詳細画面に戻った後 (モーダルを開いて閉じる)
ライブ バイト: 6.76 MB リビング: 43.798 トランジストリ: 400.850 バイト全体: 155.69 MB
そして、私が別の行に戻った場合、それは決して少なくならず、追加するだけです
私に厳しくしたり、理由もなくトピックをシャットダウンしたりしないでください..
ヒントやアドバイスをください。または、「問題」が何であるかわからない場合は、これらが何であるかを説明してください: Live Bytes - #living - #Transitory - 全体のバイト - # 全体
そして、このウェブサイトが持つすべての情報に感謝したいと思います。