我正在創建UIPopoverController
並將「Editor1」設置爲內容視圖控制器。 當調用者收到didDismissPopover時,我發佈了UIPopoverController
。 這是代碼:UIPopoverController內存問題
- (IBAction)open1:(id)sender {
Editor1 *editor = [[Editor1 alloc] initWithNibName:@"Editor1" bundle:nil];
_popoverController = [[UIPopoverController alloc] initWithContentViewController:editor];
_popoverController.delegate = self;
[editor release];
[self.popOverController presentPopoverFromRect:self.open1Button.bounds inView:self.open1Button permittedArrowDirections:UIPopoverArrowDirectionAny animated:NO];
}
- (BOOL)popoverControllerShouldDismissPopover:(UIPopoverController *)popoverController{
NSLog(@"popoverControllerShouldDismissPopover");
return YES;
}
- (void)popoverControllerDidDismissPopover:(UIPopoverController *)popoverController{
NSLog(@"popvoerControllerDidDismissPopover");
[_popoverController release];
}
在我的編輯我有一個UITextField
當用戶改變文字,我保存它時,我得到的消息「editingDidEnd」
- (IBAction)editingDidEnd:(id)sender {
NSLog(@"Editing did End");
// SAVE PROCEDURE
}
我的問題關於順序這些方法被調用。 的順序是:
2011-09-07 12:35:21.628 iosTest[1967:b603] popoverControllerShouldDismissPopover
2011-09-07 12:35:21.629 iosTest[1967:b603] popvoerControllerDidDismissPopover
2011-09-07 12:35:21.983 iosTest[1967:b603] Editing did End
2011-09-07 12:35:21.985 iosTest[1967:b603] viewWill Disappear
正如你可以看到popoverControllerDidDismissPopover被editingDidEnd:
之前調用,所以這意味着我釋放酥料餅的我做我的拯救程序之前。這可能會導致崩潰問題。
此外,在我的保存過程中,我需要在某些情況下要求用戶確認。我爲此使用UIAlertView
。
你有什麼建議嗎?
你是指viewdidunload的內容視圖控制器(editor1),或uipopovercontroller? –
我的意思是「容器類」,在這裏你創建一個Editor1的實例 - Editor1的父類 –