我寫了一些代碼,我調出一個新的視圖(從我的主視圖控制器);然後調用主控制器,當它是封閉的,像這樣 -調出新的視圖控制器 - 發佈查詢
-(void)showMyNewView {
MyNewViewController *myNewViewController = [[MyNewViewController alloc] initWithNibName:@"MyNewViewController" delegate:self];
[self.view addSubview:myNewViewController.view];
}
,然後在新的關閉,它調用 -
-(void)myNewViewControllerDidFinish:(MyNewViewController *)myNewViewController {
[myNewViewController.view removeFromSuperview];
[myNewViewController release];
}
現在這工作得很好,並沒有泄漏,但編譯器呻吟着警告:「在x行分配的對象的潛在泄漏並存儲到myNewViewController中」。
我一直在看Apple的presentModalViewController:animated:代碼,它也不會在創建它的方法中釋放新的模式視圖控制器,它似乎釋放它與dismissModalViewControllerAnimated:調用時委託的viewControllerDidFinish:方法被調用。有什麼我在這裏失蹤?使用presentModalViewController代碼不會生成任何警告。非常感謝您的幫助。
謝謝 - 我已經試過這個,但釋放subView導致它dealloc。我將子視圖加載爲局部變量而不是保留的屬性,這是否會成爲問題?我想避免擁有大量屬性或保留實例變量。我不知道presentModalViewController方法是否保留了傳遞給它的本地定義的視圖? – SomaMan 2011-05-13 23:09:01
這不是關於視圖,而是控制器(它不會被視圖層次結構保留)。 – Eiko 2011-05-16 09:51:10
我想我可能一直困惑這兩個,但我很確定我現在清楚 - 謝謝。 – SomaMan 2011-05-16 13:04:04