在iPhone上使用PLists实现持久性

在iPhone上使用PLists实现持久性,iphone,objective-c,persistence,plist,Iphone,Objective C,Persistence,Plist,关于iphone应用程序中属性列表的简单问题。我知道你可以从plist读取数据,但是有没有办法将用户输入的数据写入plist?如果是,怎么做?很容易找到从plists读取信息的教程,但我很难找到写入plists的资源。这就是我如何将数据项写入plist的方法: [myPlistFile setInteger: myInt forKey: @"someKey"]; 当然,您可以使用setBool等更改不同类型的setInteger 希望这有帮助 -- 编辑: 如果你的.plist是一个重要类或类

关于iphone应用程序中属性列表的简单问题。我知道你可以从plist读取数据,但是有没有办法将用户输入的数据写入plist?如果是,怎么做?很容易找到从plists读取信息的教程,但我很难找到写入plists的资源。

这就是我如何将数据项写入plist的方法:

[myPlistFile setInteger: myInt forKey: @"someKey"];
当然,您可以使用setBool等更改不同类型的setInteger

希望这有帮助

--

编辑:

如果你的.plist是一个重要类或类似类的成员

myClass的标头:

NSUserDefaults* myPreferences;
@property (nonatomic, retain) NSUserDefaults* myPreferences;
self.myPreferences = [NSUserDefaults standardUserDefaults]; // load our preferences
[[NSUserDefaults standardUserDefaults] registerDefaults: [NSDictionary dictionaryWithContentsOfFile: [[NSBundle mainBundle]pathForResource: @"nameOfFile" ofType: @"plist"]]]; // now load the custom .plist file
myClass.m:

NSUserDefaults* myPreferences;
@property (nonatomic, retain) NSUserDefaults* myPreferences;
self.myPreferences = [NSUserDefaults standardUserDefaults]; // load our preferences
[[NSUserDefaults standardUserDefaults] registerDefaults: [NSDictionary dictionaryWithContentsOfFile: [[NSBundle mainBundle]pathForResource: @"nameOfFile" ofType: @"plist"]]]; // now load the custom .plist file
在这两种方法的文档中,都显示了它们各自有一个实例方法:

- (BOOL)writeToFile:(NSString *)path atomically:(BOOL)flag
对于
NSDictionary
,它将此方法描述为

将字典内容的属性列表表示形式写入给定路径

对于
NSArray
它在讨论中这样说

此方法在写入文件之前递归验证所有包含的对象是否为属性列表对象,如果所有对象都不是属性列表对象,则返回否,因为生成的文件将不是有效的属性列表


因此,如果它们所包含的项目可以在plists中使用,基本上这两个都将写入plist,例如
数组、字典、布尔值、数据、日期、数字和字符串

谢谢!如果已经创建了myPlist.plist,如何定义myPlistFile?