Сбой без ошибок написал в консоли на UISplitView левый 3-й или 4-й выбор (очень странно) - PullRequest
0 голосов
/ 05 ноября 2010

У меня странная проблема с приложением для iPad (обновление приложения для iPhone).

Основные факты: - Это приложение на основе UISplitVIew. - LeftView - это NavigationController. - RightVIew (detailView) также является NavigationController - Когда пользователь выбирает строку в RootView в левом представлении, я выдвигаю новый просмотр таблицы, когда пользователь выбирает строку в этом втором просмотре таблицы, я обновляю detailView, перезагружая нужные мне списки данных и вызывая [tableview reloadData].

Вопрос состоит в следующем: Когда пользователь выбирает строку (что угодно) во втором табличном представлении (левое представление), подробный вид обновляется корректно, когда пользователь выбирает другую строку (независимо от того), подробный вид обновляется правильно, когда пользователь выбирает третью строку (независимо от того), происходит сбой приложения без регистрации чего-либо на консоли.

Insted, если пользователь выбирает строку (что угодно) во втором табличном представлении (левое представление) и затем возвращается к корневому представлению, выбирает строку, чтобы выдвинуть второе табличное представление, и выбирает строку, а затем возвращается в корневое представление и т. Д. приложение никогда не падает.

Я схожу с ума, Может ли быть проблема утечки памяти?

(надеюсь, мое объяснение понятно, я итальянец, а мой английский не очень хорошо)

Большое спасибо. Даниэла.

Ответы [ 2 ]

1 голос
/ 11 марта 2011

Когда я столкнулся с подобной проблемой, на днях друг указал мне на эту ссылку: http://www.cocoadev.com/index.pl?NSZombieEnabled, это очень полезно.

0 голосов
/ 06 ноября 2010

objc_msgSend () - это функция c, в которой ваш вызов метода выполняется средой выполнения ObjC. Когда вы видите, что EXC_BAD_ACCESS появляется в obj_msgSend (), это означает, что объект, для которого вы вызывали метод в предыдущем кадре стека, недопустим. Скорее всего, он уже освобожден.

У вас проблема с управлением памятью данного объекта. Сбой происходит при вызове - [UITableView (UITableViewInternal) _createPreparedCellForGlobalRow:], который является внутренним методом UITableView. Предположительно, этот метод вызывается для UITableView, который уже был освобожден. Вы должны посмотреть в обратном следе, чтобы определить, какое из ваших табличных представлений было освобождено, а затем проверить управление памятью для этого объекта. Вы, вероятно, чрезмерно выпускаете его или не сохраняете его, когда должны быть.

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