Сбой, связанный с NSNotificationCenter в iOS 3.2

#iphone #ios #ipad #crash #nsnotificationcenter

#iPhone #iOS #iPad #сбой #nsnotificationcenter

Вопрос:

Наше приложение отлично работает на iOS 4.2 и 4.3. Однако в iOS 3.2 оно вылетает на этой строке

 [[NSNotificationCenter defaultCenter] postNotificationName:@"notificnname" object:nil];
  

Функция postNotificationName доступна с iOS 2.0.
Я создаю свое приложение с iOS 4.3, а целевой sdk установлен как 3.2.
Есть идеи, что может быть причиной сбоя.

Спасибо.

Комментарии:

1. Что говорит консоль? Также проверьте, какие объекты наблюдают это событие, вероятно, проблема в нем.

Ответ №1:

согласен с комментарием pt2ph8 выше.

Скорее всего, какой-то объект зарегистрировался для уведомления, а затем был освобожден без отмены регистрации для уведомления. Таким образом, центр уведомлений отправляет уведомления мертвым объектам.

Убедитесь, что в вашем dealloc (или viewDidUnload для контроллеров просмотра) вы отменяете регистрацию этого объекта во всех уведомлениях.

Комментарии:

1. Верно, NSNotificationCenter не сохраняет наблюдателей, так что, скорее всего, это нераспределенный объект.