УсловияApp возобновился от фона, всухую свойство NSManagedObject
- Получение уведомления (TXT сообщений)
- или открытия/закрытия Центр уведомлений
- или переключиться на другое приложение, вернуться
В основном, приложение возвращается с фона на короткий период.
Выпуск
Layout это нормально, но некоторые из моих свойств, которые я получаю от CoreData пустуют после выхода из фона. Эта проблема существует почти для всех моих контроллеров.
Проект
Это приложение, которое имеет главный контроллер TabBar с два navigationcontrollers внутри вкладки и, возможно два уровня viewcontrollers, которые сам ребенок UIViews (которые используют некоторые из информаций). Внутренняя часть состоит из Parse и CoreData.
Странная часть
Назад от фона -> свойства хорошо на viewWillAppear (Создать резервную копию ид) -> они равны нулю секунд после того, как -> Мне нужно вручную вернуть их обратно (от ID я просто хранится)
Вот скриншот, когда поставив точку останова внутри функции, вызываемой каждый 5сек, чтобы проверить текущее время (link to bigger):
Что я сделал
NSCoder реализован для восстановления состояния, и каждый контроллер вида имеет идентификатор восстановления, однако он не вызывается, когда приложение становится активным. Я не думаю, что NSCoder является проблемой здесь, поскольку из документации она используется, когда ОС будет убивать ее сама по себе, или сила уходит от пользователя.
Я попытался вручную обновить содержимое в соответствующих ViewControllers из NSNotificationCenter, если NSManagedObjects равен нулю, но он не является надежным для будущего и никогда не является такой же логикой для каждого представления.
Любые мысли? Спасибо!
Мои AppDelegate:
- (void)applicationWillResignActive:(UIApplication *)application
{
NSLog(@"Will Resign Active");
}
- (void)applicationDidEnterBackground:(UIApplication *)application
{
NSLog(@"Entered Background");
}
- (void)applicationWillEnterForeground:(UIApplication *)application
{
NSLog(@"Will enter Foreground");
}
- (void)applicationDidBecomeActive:(UIApplication *)application {
[[NSNotificationCenter defaultCenter] postNotificationName:@"needsRefresh" object:self userInfo:nil]; // Helpful in some viewcontrollers to save variables that are not nil.
[PF_FBSession.activeSession handleDidBecomeActive];
}
- (void)applicationWillTerminate:(UIApplication *)application
{
NSLog(@"Will Terminate");
}
Вы пытались поставить точку останова на сеттер для '_booking' и посмотреть, что это такое? Трудно понять, что происходит, поскольку вы не показываете какой-либо код реализации, или если у вас есть какие-либо уведомления, отправленные в 'applicationWillEnterForeground' и т. Д., Которые могут повлиять на это. – iwasrobbed
@iWasRobbed Отредактировано! Мой делегат в значительной степени пуст, я снова отредактирую с более связанным кодом –
У меня такая же проблема в проекте Swift. Кто-нибудь решает эту проблему? – nh32rg