iOS5 выдает ошибку EXC_BAD_ACCESS - PullRequest
0 голосов
/ 07 октября 2011

У нас есть код Objective-C, который отлично работает во всех других версиях iOS, но теперь не работает с iOS5. Ниже приведен фрагмент кода с ошибкой, он останавливается на строке setSelectedCell с 'EXC_BAD_ACCESS'

-(void)viewWillAppear:(BOOL)animated {
    Application *app = [Application sharedManager];
    [app setSelectedCell:nil deselectedCell:[menuItemTableView 
                      cellForRowAtIndexPath:currentIndexPath]];
}

Как кто-нибудь сталкивался с этой ошибкой? Есть идеи как починить?

Спасибо!

Ответы [ 3 ]

4 голосов
/ 07 октября 2011

Вероятно, ваша ошибка существовала в прошлых версиях, и теперь она лучше обнаруживается в iOS5. Самая важная вещь, которую нужно понять в EXC_BAD_ACCESS, это то, что строка, в которой она обнаружена, может иметь или не иметь никакого отношения к коду, который ее вызывает.

Я подробно об этом писал здесь:

http://loufranco.com/blog/files/Understanding-EXC_BAD_ACCESS.html

Там также есть советы по отладке, но подведем итог

  1. Создайте и проанализируйте - исправьте все, что видите
  2. Если вы думаете, что переизбыток, попробуйте включить зомби
  3. Отладка Malloc может привести к возникновению ошибки ближе к причине

Повторюсь - если вы не получаете EXC_BAD_ACCESS, это не означает, что у вас нет ошибки, приводящей к сбоям памяти, - это просто означает, что она не была обнаружена системой виртуальной памяти / подкачки памяти.

0 голосов
/ 07 октября 2011

Если menuItemTable был выпущен, но не установлен в ноль, это приведет к сбою приложения и даст вам EXC_BAD_ACCESS, когда вы отправляете сообщение чему-то, что не существует и не равно нулю.

0 голосов
/ 07 октября 2011

Я не могу судить по маленькому коду, который вы вставили, но это может быть проблема с автоматическим подсчетом ссылок (ARC)

http://developer.apple.com/technologies/ios5/

Попробуйте отключить это внастройки сборки.

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