NSNotificationCenter не работает на стороне iPhone универсального приложения - PullRequest
0 голосов
/ 17 декабря 2010

Я работаю над универсальным приложением для iPad и iPhone. У меня есть делегат общего приложения, делегат приложения iPad (подклассы общего ресурса) и делегат приложения iPhone (также подклассы общего ресурса) - все на основе шаблона в XCode. Приложение также имеет общий контроллер просмотра для навигации. В iPad он используется в качестве основного контроллера вида в SplitViewController. В приложении iPhone он отображается как корневой контроллер UINavigationController.

В моем делегате общего приложения я набираю JSON с моего веб-сервера для настройки приложения, и когда я завершил анализ этих данных, я публикую уведомление на NSNotificationCenter (defaultCenter).

[[NSNotificationCenter defaultCenter] postNotificationName:kDataReady object:nil];

Контроллер общего вида является наблюдателем для этого уведомления.

[[NSNotificationCenter defaultCenter] addObserver:self 
            selector:@selector(onDataReady:) 
             name:kDataReady 
              object:nil];

Когда я запускаю приложение на iPad, контроллер общего вида получает это уведомление и соответствующим образом вызывает селектор. При запуске на iPhone это не так. Общие классы между iPhone и iPad создаются в одном и том же порядке, и я могу проверить это по журналам консоли. Я понятия не имею, почему это не работает, как ожидалось. Помогите!

1 Ответ

1 голос
/ 17 декабря 2010

Действительно ли метод addObserver вызывается на iPhone?Тот факт, что он находится в подклассе, не означает, что необходимые супер-вызовы выполнены.

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