2010-07-05 136 views
0

我將視圖控制器推入當前的導航控制器。它工作正常,除了當我離開當前的視圖控制器,它崩潰。由於NSArray變量導致UINavigationController崩潰

MyTableView *newPage = [[MyTableView alloc] initWithNibName:@"table2" bundle:nil]; 
[[self navigationController] pushViewController:newPage animated:YES]; 
//[newPage release]; 

我將最後一行註釋掉以防止崩潰。我讀了另一篇關於變量被釋放的文章。在新頁,我只有一個變量(arrCellText),並在initWithNibName

NSArray *temp = [[NSArray alloc] initWithObjects:@"string1", @"string2", @"string3", nil]; 
[self setArrCellText: temp]; 
[temp release]; 

初始化我把釋放的dealloc的

[arrCellText release]; 

如果我註釋掉設置和arrCellText釋放,它也能正常工作。 我不能完全理解內存管理,我想更好地理解這一點。 TIA

+2

您是如何設置arrCellText屬性的,或者您是如何實現-setArrCellText :? – 2010-07-05 21:55:09

+0

是的,我有: @property(nonatomic,retain)NSArray * arrCellText 在我的.h文件和 @synthesize arrCellText; .m文件中的 。 我剛拿出那些//並再次運行它。這次它沒有崩潰。我很困惑。 – Unplug 2010-07-05 22:55:08

回答

0

崩潰發生在哪裏? 首先你可以發佈'newPage'後推到導航控制器(因爲它保留在那裏)。

回來後,您可能會嘗試從newPage訪問任何內容。同時發佈'newPage',因此有一些垃圾值(但不是零)。