5

我想在应用程序关闭后保存一些整数并在应用程序打开后恢复它们,最简单的方法是什么?

4

6 回答 6

16

您应该从 NSUserDefaults 存储和加载数据:

http://developer.apple.com/library/IOS/#documentation/Cocoa/Reference/Foundation/Classes/NSUserDefaults_Class/Reference/Reference.html

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
// to store
[defaults setObject:[NSNumber numberWithInt:12345] forKey:@"myKey"];
[defaults synchronize];

// to load
NSNumber *aNumber = [defaults objectForKey:@"myKey"];
NSInteger anInt = [aNumber intValue];
于 2011-07-12T21:48:22.663 回答
5

查看NSUserDefaults 文档。您可以在那里设置任意键值对(只要您-synchronize在应用程序终止之前的某个时间点调用共享用户默认对象)将在启动之间持续存在。

于 2011-07-12T21:47:44.377 回答
4

您可以将它们保存在 NSUserDefaults 中。这主要用于偏好。

[[NSUserDefaults standardUserDefaults] setObject:someInteger forKey:@"someIntegerKey"];
[[NSUserDefaults standardUserDefaults] synchronize];

如果您想要存储更多数据,也可以将它们保存到属性列表文件中。

NSDictionary *someDictionary = [NSDictionary dictionaryWithObjectsAndKeys:someInt1, @"someIntKey1", someInt2, @"someIntKey2", nil];

[someDictionary writeToFile:somePath error:&error];

要在退出应用程序时保存任何代码

- (void)applicationWillTerminate:(UIApplication *)application
于 2011-07-12T21:51:44.853 回答
3

研究使用 NSUserDefaults。这就像一个可以添加键/值对的字典。您将变量保存在应用程序委托的 applicationWillTerminate 和 applicationDidEnterBackground 方法中。在 applicationDidFinishLoading 中再次加载变量。

于 2011-07-12T21:48:13.020 回答
1

最简单的方法是使用 NSUserDefaults。当应用程序即将关闭时,您的应用程序委托会收到一条-applicationWillTerminate:消息,您可以将数据写入 NSUserDefaults(如果数据量很大,也可以将其写入您自己的文件中)。然后,当您的应用程序再次启动时,您的应用程序委托将获得一个-applicationDidFinishLaunching,您可以再次读取数据。

于 2011-07-12T21:48:33.380 回答
-2

序列化它们并将它们存储在内存中。您必须在关闭之前执行此操作并在重新打开应用程序时加载

于 2011-07-12T21:48:08.433 回答