在应用程序中存储iPhone应用程序设置

时间:2010-02-09 10:28:06

标签: ios iphone cocoa-touch settings user-preferences

我的iPhone应用程序设置很少,用户可能会经常更改。我想知道是否有任何建议的方法来处理这些设置(阅读和保存它们)。在Apple网站上,我发现只有一个关于将应用程序设置与设置应用程序(link)集成的教程,但我不希望用户退出我的应用程序,因此他可以更改选项。

是否有任何默认机制可以在应用程序本身处理此类设置,还是我必须实现自己的解决方案?

3 个答案:

答案 0 :(得分:43)

在iPhone中存储设置的最佳和最简单的方法是NSUserDefaults。使您不必处理文件系统或plist或任何其他东西。

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

NSString *storedVal = @"This is what you want to save";
NSString *key = @"storedVal"; // the key for the data

[defaults setObject:storedVal forKey:key];
[defaults synchronize]; // this method is optional


// Get the results out
NSString *results = [defaults stringForKey:key];

这就是Apple所说的可以存储在默认值

中的对象类型
  

默认对象必须是属性   列表,即(或用于...的实例)   集合实例的组合   of):NSData,NSString,NSNumber,   NSDate,NSArray或NSDictionary。如果   你想存储任何其他类型的   对象,您通常应该存档   它创建一个NSData实例。

还有一些注意事项,比如存储NSDictionary时,键值必须是字符串。

答案 1 :(得分:4)

如果您正在寻找用于在应用内部编辑设置的用户界面,请查看http://www.inappsettingskit.com上的InAppSettingsKit

答案 2 :(得分:0)

从iPhone开发人员连接中阅读File and Networking Guide。它将解释如何获取应用程序沙箱中不同预定义位置的路径。我建议您使用NSDictionary来存储您的首选项,这些首选项可以轻松保存到文件系统并转换为plist。