2012-01-07 8 views
1

analyzeツールは、このコード行に潜在的なリークを与えます。123行目に割り当てられ、 'page'に格納されたオブジェクトの潜在的なリーク

for (int index = firstNeededPageIndex; index <= lastNeededPageIndex; index++) { 

私はそれを把握することはできません誰でも助けてください。ここで

はあなたが(あなたがARCを使用していないと仮定)スニペットの下部に割り当てるページを解放することはありませんコード

- (void)tilePages 
{ 


    // Calculate which pages are visible 
    CGRect visibleBounds = pagingScrollView.bounds; 
    int firstNeededPageIndex = floorf(CGRectGetMinX(visibleBounds)/CGRectGetWidth(visibleBounds)); 
    int lastNeededPageIndex = floorf((CGRectGetMaxX(visibleBounds)-1)/CGRectGetWidth(visibleBounds)); 
    firstNeededPageIndex = MAX(firstNeededPageIndex, 0); 
    lastNeededPageIndex = MIN(lastNeededPageIndex, [self imageCount] - 1); 

    // Recycle no-longer-visible pages 
    for (ImageScrollView *page in visiblePages) { 
     if (page.index < firstNeededPageIndex || page.index > lastNeededPageIndex) { 
      [recycledPages addObject:page]; 
      [page removeFromSuperview]; 
     } 
    } 
    [visiblePages minusSet:recycledPages]; 

    // add missing pages 
    for (int index = firstNeededPageIndex; index <= lastNeededPageIndex; index++) { 
     if (![self isDisplayingPageForIndex:index]) { 
      ImageScrollView *page = [self dequeueRecycledPage]; 
      if (page == nil) { 
       page = [[ImageScrollView alloc] init]; 
      } 
      [self configurePage:page forIndex:index]; 
      [pagingScrollView addSubview:page]; 
      [visiblePages addObject:page]; 

     } 
    }  

} 

答えて

1

の残りの部分である

0

ば、漏れがあるでしょう「ページ」がrecycledPagesに追加された// Recycle no-longer-visible pagesセクションは、// add missing pages部分で決して再利用されません。

私はこのように私は、彼らはあなたのビュー(または別のオブジェクト)に関連付けられていると仮定し、あなたの関数でrecycledPagesの宣言を見ることができません。その後、ビューを終了または閉じるときに(またはあなたが認識しているその他の状態)、未使用のリサイクルページを解放する必要があります。

あなたが実際にそれをやっている場合は、分析ツールは、おそらくそれを認識する「十分に明るい」ではありません。

関連する問題