2009-07-09 3 views
1

мое приложение iphone неожиданно падает и смотрит в журнал сбоев. Я не могу сказать, где мой код делает что-то неправильно. Все, что я получаю в стеке, - это призывы к структуре, которая сама собой.Нужна помощь по журналу сбоев iphone. Есть эксперты?

Любая помощь? пожалуйста!

это ссылка на журнал аварии (а не копировать вставить все это здесь) http://www.megaupload.com/?d=CTWWNUN1

спасибо !!!

ответ

2

Похоже, вы столкнулись с ошибкой mach_msg_trap, которая обрабатывает передачу сообщения Objective-C. Это часто признак того, что вы делаете одну из двух вещей:

  1. У вас есть вопрос управления памятью где-то - вы пытаетесь вызвать селектор на объект, который уже был освобожден, вы overreleasing объект или что-то подобное.
  2. Вы не являетесь потокобезопасным в некоторых рамках. Это может быть особенно сложно в UIKit (большинство элементов UI *, которые использует iPhone), где вам не разрешено обновлять экран из любого потока, отличного от основного потока.

Посмотрите на использование инструментов, чтобы проверить распределение и утечку объекта, и проверьте, правильно ли вы соблюдаете правила потока.

+0

Удивительный ответ !! большое спасибо! Я попробую кое-что. Я уверен, что это имеет какое-то отношение к потоку в UIKit. Любые идеи о том, как предотвращать эту или лучшие практики в отношении безопасности потоков при использовании UIKit? Например: если я делаю [someUITableView reloadData], я должен убедиться, что он выполняется главным потоком, не так ли? – nico

+0

В значительной степени. Идея состоит в том, что вы не должны вызывать или совершать что-либо, что приведет к анимации (в виде таблицы это означает перезагрузку данных, вставку/удаление строк/разделов) из любого другого места, кроме основного потока. Если ваше приложение однопоточное, не беспокойтесь; в противном случае просто используйте метод performSelectorOnMainThread:. – Tim