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

我的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。