我有一个主要用 C++ 编写的 ios 游戏,它以标准的 C++ 二进制格式存储其游戏数据。我想添加 iCloud 支持,但我不确定是否可以将此类文件上传到 iCloud。
是否可以?如果是这样,怎么做?
我有一个主要用 C++ 编写的 ios 游戏,它以标准的 C++ 二进制格式存储其游戏数据。我想添加 iCloud 支持,但我不确定是否可以将此类文件上传到 iCloud。
是否可以?如果是这样,怎么做?
为什么不?应用程序的 Documents 文件夹中的任何文件都将备份到 iCloud。
如果这个文件不能以其他方式重新创建(例如它是一个保存游戏,而不是一个缓存文件),那么我认为没有问题。
该文档指出:
将用户数据放在 /Documents/ 中。用户数据是您的应用程序无法重新创建的任何数据,例如用户文档和其他用户生成的内容。
...
位于 Documents 子目录(或其子目录之一)中的每个文件或文件包都作为一个单独的文档呈现给用户(通过 OS X 和 iOS 中的 iCloud UI),可以单独删除。
您的应用程序或游戏的 iCloud 文档可以具有您想要的任何内部格式 - 您不必使用 NSDocument 类。
请注意,iCloud 备份与 iCloud 文档不同。将用户数据放入 Documents 文件夹将导致它作为设备备份的一部分备份到 iCloud,但不会导致它同步到其他设备。为此,您需要使用iCloud API来正确协调同步过程。
您可以保存将被视为单个项目的非特定数据,也可以保存用户可以删除的“文档”,例如,当空间不足时。您可以通过单击 iCloud 首选项中的“管理”来查看其工作原理。
如果您需要存储的数据不是太大(几千字节),我建议您也查看键值存储,它比文档 API 简单得多。可以使用 NSData 将二进制数据存储在那里。键值存储的限制最近已提高到 1MB 和 1024 个键。