使用'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];
}
}
如何解决?感谢。
答案 0 :(得分:1)
查看Basic Memory Management Rules。
您的[dataSource imageAtIndex:page]为您提供了对视图的引用 - 但不是所有权。您只能“释放”您拥有的对象。您可以通过以“alloc”,“new”,“copy”或“mutableCopy”开头的方法或显式调用“retain”来获得对象的所有权。