我正在尝试使用
writeToFile:atomically:YES
但是,我对每个文件都没有成功。当我尝试编写一个大型数组(从四个已解析的 XML 文档创建)时,该文件未写入(当我尝试编写一个仅包含一个已解析 XML 的数组时它确实成功)。它也有效,当我使用时
writeToFile:atomically:NO
这种行为的原因可能是什么?使用时文件大小有限制
writeToFile:atomically:YES
吗?
我正在尝试使用
writeToFile:atomically:YES
但是,我对每个文件都没有成功。当我尝试编写一个大型数组(从四个已解析的 XML 文档创建)时,该文件未写入(当我尝试编写一个仅包含一个已解析 XML 的数组时它确实成功)。它也有效,当我使用时
writeToFile:atomically:NO
这种行为的原因可能是什么?使用时文件大小有限制
writeToFile:atomically:YES
吗?
唯一的大小限制是设备上的可用空间量。但是,writeToFile:atomically:
只有在每个对象(无论它到达多少层)都是属性列表对象时,它才适用于 NSArray。属性列表对象是NSArray
、NSDictionary
、NSString
、NSNumber
和NSData
。此外,NSDictionary
如果键是 all ,它只是一个属性列表对象NSString
。
NSArray
不过确实符合NSCoding
,所以如果您的自定义类对象也符合,NSCoding
那么您可以将数组编码为 anNSData
并将其写入文件 - 通过NSKeyedArchiver
.
或者,清理您的数据结构,以便您只使用属性列表对象。