0

複数のセルがあり、各セルに imageview がある 2X2 コレクション ビューを読み込んでいます。しかし、このコントローラーを閉じると、常駐メモリとダーティ メモリが増加し続けます。

コントローラーに複数のビューがあり、コレクション ビューはその 1 つです。addsubview と removefromsuperview を実行して、コントローラーにさまざまなビューを表示します。コントローラーを閉じる前に、コレクションビューを含むすべてのサブビューをコントローラーのサブビューから削除します。

しかし、これは常駐メモリを解放せず、500MB を超えると、メモリ警告をスローしてアプリがクラッシュします。これは、dismissviewcontrollerの前にサブビューを削除する私のコードです-

-(void)removeSubViewsOfView:(UIView *)view{        
    NSArray *viewsToRemove = [view subviews];
    for (int i = 0; i<[viewsToRemove count]; i++) {
        UIView *v = [viewsToRemove objectAtIndex:i];

            [v removeFromSuperview];
            v=nil;
    }
}

また、ARCを使用しています。

4

1 に答える 1