2013-08-18 35 views
0

我已經搜遍了這個,找不到解決方案:我使用一個標準的NSMutableDictionary writeToFile方法,如果我的字典有更多的一個項目,保持失敗,包含一個「 thumbnailURL「鍵,但如果我註釋掉這個特殊鍵的使用並保留其餘所有內容,則不會失敗......我的詞典包含其他NSMutableDictionaries,每個NSMutableDictionaries都包含2個NSString:」title「和」thumbnailURL「鍵。鍵都是NSString。NSMutableDictionary writeToFile失敗,並有多個項目

起初,字典是空的,所以我只是添加到它:

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

回答

0

好吧,找到了問題,這是我的一個錯誤,當我在保存之間加載字典時,我再次轉換爲NSURL,並忘記將它重新轉換回NSString上,第二次保存...調試器沒有捕捉到它,因爲它顯示了NSURL和NSString的相同thumbnailURL描述...