如何覆盖退出操作(iphone dev。)?

时间:2011-06-27 17:03:53

标签: iphone objective-c ios cocoa-touch

我需要在退出应用程序之前将一些信息写入文件。我怎么能这样做?

3 个答案:

答案 0 :(得分:0)

在App Delegate中实施以下方法:

- (void)applicationWillTerminate:(UIApplication *)application

答案 1 :(得分:0)

假设您的应用支持多任​​务(并且您使用的是iOS 4或更高版本):

覆盖应用代理中的applicationDidEnterBackground方法,并执行以下操作:

- (void)applicationDidEnterBackground:(UIApplication *)application {



bgTask = [ [UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{
    [app endBackgroundTask:bgTask];
    bgTask = UIBackgroundTaskInvalid;
}];

//do whatever writing you like    


if (bgTask != UIBackgroundTaskInvalid) {
    [[UIApplication sharedApplication] endBackgroundTask:bgTask];
    bgTask = UIBackgroundTaskInvalid;

}

}

答案 2 :(得分:0)

从Apple开发者网站上的Preserving the State of Your Application’s User Interface开始。阅读方法applicationDidEnterBackground:及其相关方法,如applicationWillResignActive等。实现任何这些应用程序委托方法时要记住的一件事是你没有很多时间去做东西

避免在应用程序正在后台或退出时尝试写出某些数据的竞争条件的一种方法是在应用程序正常运行期间更改时将其写出来。然后,它总是正确的“在磁盘上。”