Iphone 写入文件多维NSMutableArray问题

Iphone 写入文件多维NSMutableArray问题,iphone,cocoa-touch,cocoa,Iphone,Cocoa Touch,Cocoa,我在从文件中写入和检索多维数组时遇到问题。我将所有要写入数组的对象添加到一个数组中,并从它创建的文件中写入和检索该数组。除了多维NSMutable数组对象之外,多维数组旁边的所有其他对象都在正确地读写 我使用以下命令写入数组: [array addObject:multiDiminutionalArray]; [array writeToFile:[self dataFilePath] atomically:YES]; NSMutableArray *array = [[NSMutableAr

我在从文件中写入和检索多维数组时遇到问题。我将所有要写入数组的对象添加到一个数组中,并从它创建的文件中写入和检索该数组。除了多维NSMutable数组对象之外,多维数组旁边的所有其他对象都在正确地读写

我使用以下命令写入数组:

[array addObject:multiDiminutionalArray];
[array writeToFile:[self dataFilePath] atomically:YES];
NSMutableArray *array = [[NSMutableArray alloc] initWithContentsOfFile:filePath];
multiDiminutionalArray = [array objectAtIndex:1];
我使用以下命令读取阵列:

[array addObject:multiDiminutionalArray];
[array writeToFile:[self dataFilePath] atomically:YES];
NSMutableArray *array = [[NSMutableArray alloc] initWithContentsOfFile:filePath];
multiDiminutionalArray = [array objectAtIndex:1];

有什么想法吗?

尤扎肯应该把这个评论变成一个答案

我怀疑存储在数组中的一个或多个对象的类缺乏NSCoding一致性是问题所在。NSArray知道如何存档自己,但存储在其中的对象


或者,确保您的文件路径是有效的文件路径。如果它类似于@“myFile.dat”,则无效,因为它不是完整路径。如果它类似于@“~/Desktop/myFile.dat”,那么它也是无效的,因为波浪线没有扩展到完整的/Users/me/。。。路径。

两个重要问题:你期望发生什么,以及实际发生了什么?同意Chuck的观点。这些事情通常不会悄无声息地失败,所以如果它不起作用,不要假设我们有一个水晶球来预测发生了什么。张贴你的错误。此外,您甚至没有检查-writeToFile:…中的BOOL返回值。。。那你怎么知道它写得是否成功呢?您需要更好地检查通话结果(请参阅“防御性编程”)。