我正在尝试使用
编写文件 writeToFile:atomically:YES
但是,我对每个文件都没有成功。当我尝试编写一个大型数组(从四个解析的XML文档创建)时,该文件未被写入(当我尝试编写仅包含一个已解析XML的数组时,它确实成功)。当我使用
时,它也有效writeToFile:atomically:NO
这种行为可能是什么原因?使用时是否存在文件大小限制
writeToFile:atomically:YES
?
答案 0 :(得分:3)
唯一的大小限制是设备上的可用空间量。但是,writeToFile:atomically:
仅适用于NSArray,如果每个对象,无论多少级别,它都是属性列表对象。属性列表对象为NSArray
,NSDictionary
,NSString
,NSNumber
和NSData
。此外,如果密钥都是NSDictionary
,则NSString
只是属性列表对象。
NSArray
确实符合NSCoding
,因此如果您的自定义类对象也符合NSCoding
,那么您可以将数组编码为{{1}并将其写入文件 - 通过NSData
。
或者,清理您的数据结构,这样您就只使用属性列表对象。