У меня есть эта строка кода:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(stop) name:UIApplicationDidEnterBackgroundNotification object:nil];
Прекрасно работает в симуляторе iPhone 4.3 и на моем iPhone под управлением 4.x. Однако происходит сбой на iPhone под управлением 3.x. Имеет смысл. Я думаю, что эта строка кода не работает, когда нет многозадачности.
Мне сложно отлаживать, потому что человек, который тестирует меня с системой 3.x, находится в удаленном месте. Я даже не уверен, оценивает ли символ UIApplicationDidEnterBackgroundNotification правильную строку, или ноль, или случайную неинициализированную память, или что в этой ОС.
Но кроме того, чтобы выяснить, почему это терпит неудачу, что я могу сделать с некоторым усилием, что я должен делать? Как определить, существует ли конкретное уведомление, прежде чем я его увижу? Или я проверяю, доступна ли многозадачность как общая категория? Я думаю, я думал, что строка кода будет в безопасности. Если ОС никогда не генерирует это уведомление, я не получаю уведомление, но строка не должна падать.