0

UIViewsプログラムで xib ファイルに基づいて作成し、 scrollView. これはこれまでのところ機能します。金額が変更された場合は、グリッドを再作成しますUIViews(私の場合、いわゆるテーマ サム)。新しいものを再作成する前に、古いものを削除します。問題は、メモリが解放されず、新しい作成ごとにメモリ使用量が積み重なることです。親指を1つ外しても、メモリは解放されません。

器具に漏れは見られません。Dealloc私の中ViewControllerでは決して呼び出されません。

私は使用ARCしており、保持された参照を避ける必要があることを知っています。しかし、明らかに私はそれらを使用しており、どこにあるのかわかりません。ここでたくさんの投稿を読んだのですが、まだ理解していないので、誰かが私がどこでそれをしたかのヒントを教えていただければ幸いです. NSZombiesEnabledオフです。

私のコード:

-(void)createGrid
{
    for (UIView *subview in self.scrollView.subviews) {
        if ([subview tag] < 10000 && ![subview isKindOfClass:[UIImageView class]]) {
            [subview removeFromSuperview];
        }
    }
    int col = 0;
    int row = 0;
    [self setupFetchedResultsController];
    for (int i = 0; i<[[self.fetchedResultsController fetchedObjects] count]; i++)
    {
        col = i % THEME_COLUMNS;
        row = i / THEME_COLUMNS;
        ThemeThumbVC *themeThumb = [[ThemeThumbVC alloc] init];
        [self.scrollView addSubview:themeThumb.view];

        // configurate thumb
        themeThumb.managedObjectContext = self.managedObjectContext;
        themeThumb.fetchedResultsController = self.fetchedResultsController;
        themeThumb.theme = [[self.fetchedResultsController fetchedObjects] objectAtIndex:i];
        [themeThumb.themeThumbImage setImage:[UIImage imageWithContentsOfFile:[[[self.fetchedResultsController fetchedObjects] objectAtIndex:i] iconImageURL]]];
        [themeThumb setTag:i];
        [themeThumb.view setTag:i];
        [themeThumb.view setFrame:CGRectMake(col*kThemeGritXOffset+(col*1), row*kThemeGritYOffset, kThemeGritXOffset+1, kThemeGritYOffset)];
        [self addChildViewController:(UIViewController*) themeThumb];
    }
    [self.scrollView setContentSize:CGSizeMake(320, row*kThemeGritYOffset+kThemeGritYOffset)];
}
4

1 に答える 1