NSMutableDictionary writeToFile失败,包含多个项目

时间:2013-08-18 16:54:18

标签: ios nsmutabledictionary writetofile

我已经搜索过这个,无法找到解决方案:我使用标准的NSMutableDictionary writeToFile方法,如果我的字典有多个项目,包含" thumbnailURL& #34;密钥,但如果我注释掉这个特定密钥的使用并且剩下所有其余部分它就不会失败...我的dict包含其他NSMutableDictionaries,每个包含2个NSStrings:" title"和" thumbnailURL"键。键都是NSString。

首先,dict是空的,所以我只是添加它:

NSMutableDictionary* d = [NSMutableDictionary dictionary];
NSMutableDictionary* entry = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                       [thumbnailURL absoluteString], @"thumbnailURL",
                       title, @"title",
                       nil];
[d setObject:entry forKey:guid];
[d writeToFile:path atomically:YES]; // returns YES on first attempt

稍后,我加载了dict:

NSMutableDictionary* d = [NSMutableDictionary dictionaryWithContentsOfFile:path];

以上也可以根据调试器工作,我可以看到我保存的项目。 接下来,我添加了另一个项目,与前一个项目相同,但guid键除外。 调试器显示该项目正确存储在内存中的dict对象中。 最后,我尝试使用相同的代码再次保存它 - 它失败了,writeToFile返回NO。

如果我注释掉" thumbnailURL"键,只留下"标题",它有效,没有错误...

有什么想法吗? TNX

1 个答案:

答案 0 :(得分:0)

好吧,发现问题,这是我的结果上的一个错误,当我在保存之间加载字典时,我再次转换为NSURL并且我忘记在第二次保存时将其重新转换回NSString ...调试器没有捕获它,因为它显示NSURL和NSString的相同thumbnailURL描述......