UIView не сохраняет объекты Arrays - PullRequest
0 голосов
/ 31 октября 2011

У меня есть UIViewController, который я загружаю каждый раз, когда нажимаю кнопку:

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

Я анализирую некоторые XML с местоположениями, а затем присваиваю значения NSMutableArray, который заполняет UITableView.

Я анализирую XML по методу viewDidLoad, но мне не нужно каждый раз анализировать его, поскольку значение не изменится. Я хочу разобрать его, только если массив nil, поэтому я поставил следующую проверку:

if (allLocations == nil) ....

Так что XML анализируется только при необходимости, но каждый раз, когда я нажимаю кнопку «назад» (в UINavigationController), он стирает все объекты в массиве ... Я понятия не имею, почему это так происходит ...

1 Ответ

1 голос
/ 31 октября 2011

Поскольку ваше приложение каждый раз создает новый экземпляр NearMe, переменная экземпляра allLocations всегда будет nil в viewDidLoad (которая, кстати, вызывается только если переменная экземпляра _view)is nil).

Если вы не хотите каждый раз воссоздавать массив, ваше приложение должно будет кэшировать его где-то еще.Пара возможностей состоит в том, чтобы сохранить массив в объекте, который создает экземпляр NearMe, или сохранить его в статической переменной.

...