Проблема в том, что идентификатор UIApplicationWillEnterForegroundNotification
указывает на внешне заданную строку, которая существует только в iOS 4 или более поздней версии.На iOS 3 и более ранних версиях он будет равен нулю;таким образом, вы передаете nil для имени уведомления, поэтому добавление наблюдателя дает сбой.
Это можно исправить двумя способами.Вы можете напрямую использовать строковое значение имени уведомления в вашем коде:
[[NSNotificationCenter defaultCenter]
addObserver:self
selector:@selector(applicationWillEnterForeground:)
name:@"UIApplicationWillEnterForeground" // might not be correct
object:nil];
Я не уверен, что это именно так, вам придется проверить документы или использовать NSLog, чтобы быть точно увереннымиз него.
Лучший вариант - сначала проверить значение идентификатора и добавить прослушиватель, только если он поддерживается:
if (UIApplicationWillEnterForegroundNotification) {
[[NSNotificationCenter defaultCenter]
addObserver:self
selector:@selector(applicationWillEnterForeground:)
name:UIApplicationWillEnterForegroundNotification
object:nil];
}