Класс My View Controller освобождается, когда приложение переходит в фоновый режим. Я использую ARC.My View Controller освобождается, когда приложение переходит на задний план
У меня есть UIViewController, который подписывается на уведомления, когда приложение становится активным и выполняет метод. Но как только приложение занимает около 30 секунд в фоновом режиме, а затем возобновляется, приложение вылетает с сообщением, отправленным на освобожденный экземпляр.
Включение объектов Zombie показывает, что сам контроллер просмотра является зомби.
Спасибо!
Инстанцирование моего контроллера представления (в AppDelegate):
UIStoryboard *storyBoard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
MyViewController *myViewController = [storyBoard instantiateViewControllerWithIdentifier:@"MyViewController"];
Приоритетное уведомление в AppDelegate:
- (void)applicationDidBecomeActive:(UIApplication *)application
{
[[NSNotificationCenter defaultCenter] postNotificationName:kNotificationForegrounded object:self];
}
Приоритетное уведомление в контроллере представления:
- (void)viewDidLoad {
[super viewDidLoad];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(resumeForeground) name:kNotificationForegrounded object:nil];
}
Я попытался создать сильную ссылку в AppDelegate, но контроллер представления по-прежнему будет освобождён:
@property (strong, nonatomic) MyViewController *myViewController;
Я попытался добавить контроллер вид на массив и иметь сильную ссылку на массив в AppDelegae, но все же я получаю те же результаты:
@property (strong, nonatomic) NSMutableArray *viewControllers;
//...
UIStoryboard *storyBoard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
MyViewController *myViewController = [storyBoard instantiateViewControllerWithIdentifier:@"MyViewController"];
self.viewControllers = [[NSMutableArray alloc] init];
[self.viewControllers addObject:myViewController];
Если это ваше решение, вы должны отметить его как «принятый» ответ – ethyreal