Objective c 第123行分配并存储到'中的对象的潜在泄漏;第'页;

Objective c 第123行分配并存储到'中的对象的潜在泄漏;第'页;,objective-c,memory-leaks,Objective C,Memory Leaks,分析工具给出了这行代码的潜在泄漏 for (int index = firstNeededPageIndex; index <= lastNeededPageIndex; index++) { for(int index=firstneedpageindex;index您永远不会释放在代码段底部分配的页面(假设您没有使用ARC)您永远不会释放在代码段底部分配的页面(假设您没有使用ARC)如果出现“页面”添加到//回收不再可见的页面部分中的回收页面将永远不会在//添加缺少的页面部分中重复使

分析工具给出了这行代码的潜在泄漏

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

for(int index=firstneedpageindex;index您永远不会释放在代码段底部分配的页面(假设您没有使用ARC)

您永远不会释放在代码段底部分配的页面(假设您没有使用ARC)

如果出现“页面”添加到
//回收不再可见的页面
部分中的
回收页面
将永远不会在
//添加缺少的页面
部分中重复使用

我在函数中看不到
recycledPages
的声明,因此我假设它们与您的视图(或其他对象)绑定。然后,在终止或关闭视图(或您识别的任何其他条件)时,您需要释放未使用的回收页

如果您确实这样做了,那么分析工具可能没有“足够亮”来识别它。

如果在
//回收不再可见的页面
部分中向
回收的页面
中添加了一个“页面”,则将发生泄漏。
//添加缺少的页面部分将永远不会重复使用

我在函数中看不到
recycledPages
的声明,因此我假设它们与您的视图(或其他对象)绑定。然后,在终止或关闭视图(或您识别的任何其他条件)时,您需要释放未使用的回收页

如果您确实在这样做,那么分析工具可能没有“足够明亮”来识别它

    - (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];

        }
    }    

}