调用ApplicationDidEnterBackground

时间:2015-01-29 15:22:37

标签: objective-c xcode save appdelegate shutdown

我想调用ApplicationDidEnterBackground。 我在MainViewController.m中使用此代码

- (void)applicationDidEnterBackground:(UIApplication *)application {
    NSData *data = [NSKeyedArchiver archivedDataWithRootObject:_savedText];
    [[NSUserDefaults standardUserDefaults] setObject:data forKey:@"savedText"];
    [[NSUserDefaults standardUserDefaults] synchronize];
}

但我认为它从来没有打过电话。我试图将内容放在app委托中,但后来我收到错误,因为它无法找到" _savedText"。我是否需要导入" _savedText"应用程序委托还是我应该这样做?

1 个答案:

答案 0 :(得分:0)

-applicationDidEnterBackground:UIApplicationDelegate协议的一部分。它是应用程序将发送给应用程序委托的消息。在其他一些类上实现一个具有相同名称的方法,在这种情况下是视图控制器,不会导致它被调用。

如果您需要视图控制器对进入后台的应用程序作出反应,您可以通过通知中心订阅UIApplicationDidEnterBackgroundNotification通知。

但是,如果控制器需要知道像这样的应用程序范围的事件,那么我怀疑控制器负责太多的问题,你可能想要考虑如何简化它。