将字符串保存到属性列表(plist)文件?

Posted

技术标签:

【中文标题】将字符串保存到属性列表(plist)文件?【英文标题】:Saving a string to a property list (plist) file? 【发布时间】:2012-10-05 19:03:55 【问题描述】:

我一直在尝试保存到属性列表文件,但是它不起作用,因为它只是将对象保存到数组而不是实际文件本身,这意味着它保存的内容显然不会持久化。

[[category objectAtIndex:questionCounter] replaceObjectAtIndex:5 withObject:myString];
[category writeToFile:filePath atomically:YES];

我之前使用它来将属性列表文件保存到文档目录,以便我可以编辑并保存到它们:

NSArray *paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *plistFilePath = [documentsDirectory stringByAppendingPathComponent:fileNameFull];

if([[NSFileManager defaultManager] fileExistsAtPath:plistFilePath]) 

    category = [NSMutableArray arrayWithContentsOfFile:plistFilePath];

    NSLog(@"Files exist.");


else 

    filePath = [[NSBundle mainBundle] pathForResource:fileNamer ofType:@"plist"];
    category = [NSMutableArray arrayWithContentsOfFile:filePath];

    NSLog(@"Files have been created.");


我的属性列表由数组组成,在这些数组中我试图保存我的对象(字符串)。我有一种感觉,这是一件微不足道的事情,但我无法发现它。

【问题讨论】:

【参考方案1】:

当你试图保存你的数组时,你传入了filePath,它指向你无法写入的主包目录。您想改用plistFilePath,如下所示:

[category writeToFile:plistFilePath atomically:YES];

【讨论】:

以上是关于将字符串保存到属性列表(plist)文件?的主要内容,如果未能解决你的问题,请参考以下文章

保存到.plist属性列表

iOS数据持久化之---属性列表

将来自不同视图控制器的字符串保存到 plist 而不覆盖旧的

将 NSDictionary 保存到 plist

将带有 NSAttributed 字符串的字典保存到 PList 或 NSUserDefaults

将具有多个属性的可变数组保存到 plist