我的 iPhone 应用程序很少有用户可能会经常更改的设置。我想知道是否有任何建议的方式来处理这些设置(读取和保存它们)。在 Apple 网站上,我只找到了有关将应用程序设置与设置应用程序(链接)集成的教程,但我不希望用户退出我的应用程序,因此他可以更改选项。
是否有任何默认机制来处理应用程序本身的此类设置,还是我必须实施自己的解决方案?
我的 iPhone 应用程序很少有用户可能会经常更改的设置。我想知道是否有任何建议的方式来处理这些设置(读取和保存它们)。在 Apple 网站上,我只找到了有关将应用程序设置与设置应用程序(链接)集成的教程,但我不希望用户退出我的应用程序,因此他可以更改选项。
是否有任何默认机制来处理应用程序本身的此类设置,还是我必须实施自己的解决方案?
在 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 关于可以存储在默认值中的对象类型的说明
默认对象必须是一个属性列表,即以下实例(或集合实例的组合):NSData、NSString、NSNumber、NSDate、NSArray 或 NSDictionary。如果要存储任何其他类型的对象,通常应该将其归档以创建 NSData 的实例。
还有一些注意事项,例如,如果您存储 NSDictionary,则键值必须是字符串。
如果您正在寻找从应用程序内部编辑设置的 UI,请查看http://www.inappsettingskit.com上的 InAppSettingsKit
从 iPhone Developer Connection阅读文件和网络指南。它将解释如何获取应用程序沙箱中不同预定义位置的路径。我建议您使用 NSDictionary 来存储您的首选项,这些首选项可以轻松保存到文件系统并转换为 plist。