對於以下實例所需的對象所有權模式,我有點不清楚。當我的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