2010-07-05 122 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',因此有一些垃圾值(但不是零)。