Я занимаюсь разработкой приложения для iPhone, и у меня возникла проблема с доступом к одному NSArray, определенному для делегата.
Мое приложение имеет две вкладки.Эти две вкладки имеют UITableView.У меня есть источник данных этих таблиц на одном NSArray, определенном в делегате.
Когда я загружаю приложение, первая вкладка корректно загружает все содержимое.Это одна часть кода первого контроллера вкладок:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
// Return the number of rows in the section.
mainAppDelegate *delegate = [[UIApplication sharedApplication]delegate];
return [delegate.dataArray count];
}
Когда отладчик находится в операторе возврата, я вижу, что dataArray имеет 9 элементов.Код работает отлично.
Когда я нажимаю на вторую вкладку, тот же код выполняется в контроллере второй вкладки.Но пока отладчик находится в операторе возврата, я вижу, что делегат не равен нулю, и dataArray показывает
{(int) [$ VAR count]} объекты
На следующем шаге происходит сбой программы, давая EXC_BAD_ACCESS
Я думаю, что на этом этапе dataArray был выпущен, но я не знаю когда.Я удалил вызовы выпуска dataArray для функций dealloc.
Это определение свойства dataArray:
@property (nonatomic, retain) NSArray *dataArray;
У кого-нибудь есть идеи?Я полностью потерян на этом.Спасибо за вашу помощь!