【问题标题】:NSMutableDictionary writeToFile fails with more than one itemNSMutableDictionary writeToFile 因不止一项而失败
【发布时间】:2013-08-18 16:54:17
【问题描述】:

我已经在谷歌上搜索过,找不到解决方案:我使用标准的 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

【问题讨论】:

    标签: ios nsmutabledictionary writetofile


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-05-30
      • 1970-01-01
      • 1970-01-01
      • 2014-09-10
      • 2020-08-11
      • 2019-09-24
      • 1970-01-01
      相关资源
      最近更新 更多