0

我已经用谷歌搜索了这个,找不到解决方案:我使用标准的 NSMutableDictionary writeToFile 方法,如果我的字典有多个项目,包含一个“thumbnailURL”键,它会一直失败,但它不会失败如果我注释掉这个特定键的使用并留下所有其余的......我的 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

后来,我加载了字典:

NSMutableDictionary* d = [NSMutableDictionary dictionaryWithContentsOfFile:path];

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

如果我注释掉“thumbnailURL”键并只留下“标题”,它可以工作,没有错误......

任何想法?tnx

4

1 回答 1

0

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

于 2013-08-18T17:06:11.710 回答