2011-04-13 83 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