writeToFile:atomically:YES是否有文件大小限制?

时间:2012-12-19 19:35:48

标签: iphone objective-c

我正在尝试使用

编写文件

writeToFile:atomically:YES

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

时,它也有效
writeToFile:atomically:NO

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

1 个答案:

答案 0 :(得分:3)

唯一的大小限制是设备上的可用空间量。但是,writeToFile:atomically:仅适用于NSArray,如果每个对象,无论多少级别,它都是属性列表对象。属性列表对象为NSArrayNSDictionaryNSStringNSNumberNSData。此外,如果密钥都是NSDictionary,则NSString只是属性列表对象。

NSArray 确实符合NSCoding,因此如果您的自定义类对象也符合NSCoding,那么您可以将数组编码为{{1}并将其写入文件 - 通过NSData

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