我正在開發一個iPhone應用程序,我試圖將視圖推入導航控制器,之前我已經做了很多次,但是,我在使用此特定應用程序時遇到了一些問題。我有一個表視圖,當用戶選擇一個行的新觀點推到控制器:這個對象爲什麼被釋放?
DataWrapper *row=[[self.rows objectAtIndex:[indexPath section]] objectAtIndex:[indexPath row]];
DataViewController *nextController=[[DataViewController alloc] initWithNibName:@"Data" bundle:[NSBundle mainBundle]];
[nextController setInfo:row];
[nextController setRow:[indexPath row]];
[nextController setParent:self];
[self.navigationController pushViewController:nextController animated:YES];
[nextController release];
和它去罰款,直到用戶點擊後退按鈕,我得到一個異常,並使用NSZombieEnabled而得到這個:
-[DataViewController respondsToSelector:]: message sent to deallocated instance 0x4637a00
所以我試圖刪除[nextController release]
而事實上它的工作,但爲什麼????我分配了nextController,所以我應該釋放它,對吧?我覺得如果有這樣的事情發佈這個應用程序是不對的,我覺得它會失敗。請讓我知道你的想法。
在父控制器的視圖中會發生什麼特殊情況(會/會發生)?也許涉及另一個實例變量,沒有保留或結束釋放? – dstnbrkr 2009-11-20 18:06:36