2011-04-13 130 views
1

我想寫一個NSMutableArray到一個文件,但它每次都失敗。我相信我所說的道路是正確的。還有什麼可能是這個問題?寫入文件失敗

for (int i=1; i<=10/*[self getcurrentnumber]*/;i++) 
{ 
    [mutablearray addObject:[self convertJSONtoDictionary:[self generateJSONforcomic:[NSNumber numberWithInt:i]]]]; 
    NSLog(@"Iteration %i",i); 
} 
NSLog(@"Done %.0u",[mutablearray count]); 

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES); 
NSString *libraryDirectory = [paths objectAtIndex:0]; 
NSString *location = [libraryDirectory stringByAppendingString:@"/Comics.txt"]; 
NSLog(location); 
[mutablearray writeToFile:location atomically:YES]; 
if(![mutablearray writeToFile:location atomically:YES])NSLog(@"Fail"); 

我使用introspection來確保convertJSONtoDictionary實際上返回一個字典。

+0

你爲什麼要寫同一個數組兩次?並檢查你的mutablearray是否不爲零。 – Max 2011-04-13 15:16:49

+0

哇!我現在有些尷尬......確實沒有。謝謝Max! :) – Julian 2011-04-13 15:26:49

回答

0

您可能在數組中有某種對象,它不能寫入plist(默認情況下爲數組的存儲機制)。

常見的例子是任何自定義類,UIImage或NSNull(因爲你有解析的JSON)。

如果你不能手工製作一個有你想要保存的plist,那麼該數組也不能寫出它。

+0

不,這是一個更簡單的問題:我的陣列是零:/對不起,浪費你的時間! – Julian 2011-04-13 15:29:23

+0

啊哈。不用擔心,有一天當別人有一個陣列沒有寫入磁盤時,我的回答可能會幫助他們...... – 2011-04-13 15:34:39