UIView不保留Arrays对象

时间:2011-10-30 21:19:34

标签: objective-c uiviewcontroller uinavigationcontroller nsmutablearray

我每次单击按钮时都会加载UIViewController

NearMe * temp = [[NearMe alloc] initWithNibName: @"NearMe" bundle:nil];

我使用位置解析一些XML,然后将值分配给NSMutableArray,其中填充UITableView

我在viewDidLoad方法上解析XML,但我不需要每次都解析它,因为值不会改变。如果数组是nil,我只想解析它,所以我将以下检查:

if (allLocations == nil) ....

因此只在必要时解析XML,但每次按下后退按钮(在UINavigationController中)都会删除数组中的所有对象....我不知道为什么这种情况正在发生......

1 个答案:

答案 0 :(得分:1)

由于您的应用每次都在创建一个新的NearMe实例,allLocations实例变量在nil中始终为viewDidLoad(顺便说一下,这只是_view如果nil实例变量是NearMe),则调用。

如果您不想每次都重新创建数组,那么您的应用需要将其缓存到其他位置。有几种可能性是将数组存储在创建{{1}}实例的对象中,或者将其存储在静态变量中。