Iphone: где выделить память для источника данных? - PullRequest
0 голосов
/ 11 января 2011

У меня есть массив, используемый для заполнения UITableView.

Вопрос в том, где я должен выделить память для этого.У меня есть два варианта в viewDidLoad или viewWillAppear, но я не знаю, где это более эффективно с точки зрения управления памятью.

Спасибо

Редактировать:

Iсоздайте представление, выполнив следующее:

NextViewController *nextController = [[ReservationsViewController alloc] initWithNibName:@"NextViewController" bundle:nil];
nextController.managedObjectContext = self.managedObjectContext;
[self.navigationController pushViewController:nextController animated:YES];
[nextController release];

Но я не хочу выделять память каждый раз, когда отображается, только в первый раз, когда представление загружается, чтобы быть правым с точки зрения памяти-управление.

Ответы [ 3 ]

1 голос
/ 11 января 2011

Если вы хотите, чтобы он был выделен только один раз, вы должны выделить его либо в методе init, либо в awakeFromNib, в зависимости от того, как создается ваш контроллер представления.

viewWillAppear, скорее всего, будет вызываться несколько раз, а viewDidLoad не обязательно будет вызываться только один раз.

0 голосов
/ 11 января 2011

Если вы выделите память в методе viewDidLoad , это будет сделано только тогда, когда представление загружено в память. Если вы сделаете это в viewWillAppear , вы будете делать это каждый раз, когда представление становится видимым.

0 голосов
/ 11 января 2011

Если массив является свойством, просто освободите его в dealloc следующим образом:

- (void)dealloc {
  [someArray release];
  [super dealloc];
}

Если по какой-то причине вы переключаетесь на создание локального массива в методе viewDidLoad или viewWillAppear, убедитесь, что вы его освободили каккак только вы закончите с этим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...