0

使用“分析”,在 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];
}

}

怎么解决?谢谢。

4

1 回答 1

1

查看基本内存管理规则

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

于 2013-10-30T01:47:28.220 回答