对于以下实例所需的对象所有权模式,我有点不清楚。当我的UIViewController将一个弹出窗口控制器,一个操作表或另一个视图控制器显示为模态时,我是否需要挂起对该子控制器的保留引用,直到它被解除为止?UIPopoverController,UIActionSheet和模态视图控制器的保留/释放模式?
换句话说,下面的代码行有效地“转移”了所有权吗?
[aPopoverController presentPopoverFromBarButtonItem:someButtonItem permittedArrowDirections:UIPopoverArrowDirectionAny animated:NO];
[anActionSheet showFromBarButtonItem:someButtonItem animated:NO];
[aViewController presentModalViewController:someOtherViewController animated:YES];
有人可以指出我对这个问题的明确文件吗?
请注意,如果你这样做,searchVC就会漏水。添加一个autorelease。 – steipete 2011-04-15 19:52:55
是的,searchVC被泄露。而不是一个autorelease,一个简单的版本也将工作。将此添加到最后一行: '[searchVC release];' – 2011-04-18 21:27:13
作为'popoverControllerDidDismissPopover:'的文档说: _“popover控制器不响应编程调用dismissPopoverAnimated:方法调用此方法。通过编程方式关闭弹出窗口,您应该在调用dismissPopoverAnimated:方法后立即执行任何清理操作。“_。 所以如果你使用'dismissPopoverAnimated:'你还需要在它后面调用释放,否则你会得到泄漏。 – ivanzoid 2011-05-31 10:01:40