在iOS应用程序上保存大文件
我想知道为iOS应用程序存储大文件的最佳方式(苹果指南或常识建议的方式)是什么 例如,对于big,我指的是保存一个游戏(比如说500kb),因此考虑plists是不可行的在iOS应用程序上保存大文件,ios,file,file-io,save,Ios,File,File Io,Save,我想知道为iOS应用程序存储大文件的最佳方式(苹果指南或常识建议的方式)是什么 例如,对于big,我指的是保存一个游戏(比如说500kb),因此考虑plists是不可行的 我应该使用普通的Cocoa文件管理API保存它吗?标准的stdio(fopen,fwrite,随便什么)有很多选择,当然最好的选择取决于您的需求。如果您愿意,当然可以使用C标准I/O。如果您将所有游戏数据放在一个大缓冲区中,那么NSData的读/写文件方法很容易使用。如果您有一组实现NSCoding的对象,那么可以使用NSKe
我应该使用普通的Cocoa文件管理API保存它吗?标准的
stdio
(fopen
,fwrite
,随便什么)有很多选择,当然最好的选择取决于您的需求。如果您愿意,当然可以使用C标准I/O。如果您将所有游戏数据放在一个大缓冲区中,那么NSData的读/写文件方法很容易使用。如果您有一组实现NSCoding的对象,那么可以使用NSKeyedArchiver/Unarchiver
以下是使用NSFileManager查找应用程序文档目录的一种方法:
NSString *docsDir = [NSHomeDirectory() stringByAppendingPathComponent: @"Documents"];
您的首要任务应该是总体用户体验,包括:
根据我的经验,大文件操作往往相对较慢,但cpu相对较快,因此如果要保存大量文本,使用zlib对其进行压缩以进行保存效果很好(文本压缩率很高,而zlib相当快)。看起来已经有了一个API,可以编写您想要保存的任何文件。我不确定是否有限制;至少我没有发现任何东西。我可以用标准i/O轻松管理一切,我主要担心的是文件存储在哪里,可能有限制或其他什么?我真的不知道应用程序实际上是如何由iOS(其工作目录或“数据”目录或其他任何目录)管理的,iOS用于定位应用程序的文档目录并在其中写入数据。每个应用程序在文件系统中都有自己的小空间,你不能在这个空间之外读写。当用户同步其设备时,将备份Documents目录,这也很有用。在上面的答案中添加了示例。