1

我正在尝试使用

writeToFile:atomically:YES

但是,我对每个文件都没有成功。当我尝试编写一个大型数组(从四个已解析的 XML 文档创建)时,该文件未写入(当我尝试编写一个仅包含一个已解析 XML 的数组时它确实成功)。它也有效,当我使用时

writeToFile:atomically:NO

这种行为的原因可能是什么?使用时文件大小有限制 writeToFile:atomically:YES吗?

4

1 回答 1

3

唯一的大小限制是设备上的可用空间量。但是,writeToFile:atomically:只有在每个对象(无论它到达多少层)都是属性列表对象时,它才适用于 NSArray。属性列表对象是NSArrayNSDictionaryNSStringNSNumberNSData。此外,NSDictionary如果键是 all ,它只是一个属性列表对象NSString

NSArray 不过确实符合NSCoding,所以如果您的自定义类对象也符合,NSCoding那么您可以将数组编码为 anNSData并将其写入文件 - 通过NSKeyedArchiver.

或者,清理您的数据结构,以便您只使用属性列表对象。

于 2012-12-20T01:16:37.437 回答