Обработка уведомления NSNotificationCenter вызывает bad_access - PullRequest
0 голосов
/ 05 июля 2011

Я создаю подкласс UIWindow моего приложения, а затем, когда нет активности от пользователя, я выдаю уведомление с помощью NSNotificationCenter.Я использую [NSTimer scheduleTimerWithTimeInterval: target: selector: userInfo: repeat:]

Я обрабатываю это в своем классе AppDelegate.Это работает нормально, за исключением случаев, когда я запускаю код с использованием MBProgressHUD - http://iosdevelopertips.com/open-source/ios-open-source-heads-up-display-with-mbprogresshud.html, который, я думаю, запускает другой поток.Ошибка возникает, когда он завершен, делегат срабатывает в то же время, когда выполняется код, реагирующий на уведомление.Я почти уверен, что это проблема с многопоточностью, но как мне избежать ситуации

1 Ответ

0 голосов
/ 27 сентября 2011

Вы можете использовать @synchronized для делегата приложения. Поскольку делегат приложения является синглетом, вам придется защищать критически важные разделы: один в «готовом делегате», а другой в делегате приложения.

Больше информации в документах по продвижению яблок здесь

РЕДАКТИРОВАТЬ: эта ссылка о потоках и уведомлениях является хорошим источником информации для вас.

РЕДАКТИРОВАТЬ 2: этот еще лучше

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