2013-05-12 44 views
-3

我的UIViewController,我添加到UIViewControler與此:發佈的UIViewController給予例外

ReportViewController *reportVC = [[ReportViewController alloc]initWithNibName:@"ReportViewController" bundle:nil]; 
[self.view addSubview:reportVC.view]; 

,我嘗試這行後添加

[reportVC release]; 

,我也得到exepction當我嘗試刪除這個報告VC.view與

[self.view removeFromSuperview]; 

我發佈錯誤,而這樣釋放它嗎?

+0

如何發佈異常? – borrrden 2013-05-13 01:20:56

+0

在您的項目中使用ARC – Anil 2013-05-13 04:01:49

回答

3

在你的代碼中,你將從superview中刪除「self.view」,你不應該這樣做。
你必須從superview中刪除「reportVC.view」。

你可以這樣寫:

[reportVC.view removeFromSuperView]; 

[reportVC release]; 

reportVC = nil; 
+0

正確答案man! – 2013-05-13 05:45:13

0

在這種情況下,自我將是您在調用[reportVC release]時發佈的內存。然後,您正在訪問發佈的對象上的屬性「self.view」。

1

如果您稍後在代碼中需要您的類實例,則不要釋放它。您需要在.h文件中聲明它,並在- (void) dealloc方法中調用[reportVC release]

0
[reportVC release]  

這意味着ü發佈的視圖 - 控制object.Again烏爾內存要做的操作與視圖 - 控制對象,它是已經released.So刪除該聲明在那裏並在dealloc方法中寫入或使用arc項目,無需通過u釋放內存。它會自動釋放。