2010-11-20 5 views
3

Эй, я пытаюсь многозадачность в симуляторе (у меня только iPod второго поколения и iPad), и у меня все еще есть проблемы. Мои методы тестирования выглядеть следующим образом:applicationWillEnterForeground никогда не назывался

- (void)applicationDidBecomeActive:(UIApplication *)application { 
NSLog(@"Entering %s",__FUNCTION__); 

if (enteredFromBackground) { 
    NSLog(@"Entering from Background"); 
    enteredFromBackground = NO; 
} 
} 

- (void)applicationWillEnterForeground:(UIApplication *)application { 
NSLog(@"Entering %s",__FUNCTION__); 

enteredFromBackground = YES; 
} 

Unforntunately, я не вижу в NSLog от applicationWillEnterForeground, поэтому я добавил строку, чтобы показать мне что-то в applicationDidBecomeActive. Все я это

2010-11-20 15:58:12.796 iBeat[45997:207] Entering -[AppDelegate_Shared applicationDidEnterBackground:] 
2010-11-20 15:58:18.160 iBeat[45997:207] Entering -[AppDelegate_Shared applicationDidBecomeActive:] 

ответ

5

Наконец-то я нашел свою проблему! Поскольку у меня есть универсальное приложение, у меня есть Appdelegate_Shared, Appdelegate_iPhone и Appdelegate_iPad. У меня была пустая реализация «applicationWillEnterForeground» в двух подклассах, но не называлась супер!

И тогда я подумал, почему метод Appdelegate_Shared не получил колл o.o

1

Я не думаю, что я могу объяснить это лучше, чем:

http://www.drobnik.com/touch/2010/07/understanding-ios-4-backgrounding-and-delegate-messaging/

Я в конечном итоге просто отключив многозадачности для моего первого приложения.

+0

Хорошо, если честно, я прочитал его три раза, я думаю, что его до сих пор так, как это было объяснено в уроках WWDC. Таким образом, метод «applicationWillEnterForeground» должен быть вызван до того, как приложение вернется на передний план. Я строю против 4.1, я не отказался, я просто не понимаю, что случилось. Я имею в виду, что я получаю «applicationDidEnterBackground», так почему бы и нет, когда я вернусь? – Bersaelor

Смежные вопросы