内存泄漏 - 调用者此时不拥有的对象的引用计数的不正确的减少

时间:2013-10-30 01:35:11

标签: memory memory-leaks ios7

使用'Analyze',在dealloc中我得到:调用者此时不拥有的对象的引用计数的不正确的减少

- (void)loadScrollViewWithPage:(int)page {
    int kNumberOfPages = [dataSource numberOfPages];

if (page < 0) return;
if (page >= kNumberOfPages) return;

// replace the placeholder if necessary
UIImageView *view = [imageViews objectAtIndex:page];
if ((NSNull *)view == [NSNull null]) {
    view = [dataSource imageAtIndex:page];
    [imageViews replaceObjectAtIndex:page withObject:view];
    [view release]; //<--here 
}
// add the controller's view to the scroll view
if (nil == view.superview) {
    CGRect frame = scrollView.frame;
    frame.origin.x = frame.size.width * page;
    frame.origin.y = 0;
    view.frame = frame;
    [scrollView addSubview:view];
}

}

如何解决?感谢。

1 个答案:

答案 0 :(得分:1)

查看Basic Memory Management Rules

您的[dataSource imageAtIndex:page]为您提供了对视图的引用 - 但不是所有权。您只能“释放”您拥有的对象。您可以通过以“alloc”,“new”,“copy”或“mutableCopy”开头的方法或显式调用“retain”来获得对象的所有权。