【问题标题】:Writing to file multi dimensional NSMutableArray problems写入文件多维 NSMutableArray 问题
【发布时间】:2011-06-13 19:29:55
【问题描述】:

我在从文件中写入和检索多维数组时遇到问题。我将要写入的所有对象添加到数组中,然后从它创建的文件中写入和检索数组。除了多维 NSMutable 数组 Object 之外,多维数组之外的所有其他对象都可以正常读写。

我使用以下方法编写数组:

[array addObject:multiDiminutionalArray];
[array writeToFile:[self dataFilePath] atomically:YES];

我使用以下方法读取数组:

NSMutableArray *array = [[NSMutableArray alloc] initWithContentsOfFile:filePath];
multiDiminutionalArray = [array objectAtIndex:1];

有什么想法吗?

【问题讨论】:

  • 两个重要问题:您预计会发生什么,实际发生了什么?
  • 同意查克。这些事情通常不会默默地失败,所以如果它不起作用,不要以为我们有一个水晶球可以用来预测发生了什么。发布您的错误。此外,您甚至没有检查 -writeToFile:... 的 BOOL 返回值,那么您怎么知道它是否已成功写入?您需要更好地检查调用结果(请参阅“防御性编程”)。

标签: iphone cocoa-touch cocoa


【解决方案1】:

YuzaKen 应该将评论变成答案。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-19
    • 2011-09-15
    • 2014-08-20
    • 1970-01-01
    • 2023-02-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多