CloudKit 用于我的 iOS 游戏
Posted
技术标签:
【中文标题】CloudKit 用于我的 iOS 游戏【英文标题】:CloudKit for my iOS game 【发布时间】:2014-11-27 13:10:23 【问题描述】:我正在创建 ios 游戏,用户可以在其中创建一些记录并将其存储在服务器上(目前它只是我自己的带有简单 SQL DB 的服务器)。接下来,任何人都可以通过存储在我的服务器上的任何对象的 ID 获取记录。 我当前的数据库字段:
ID 唯一的自动生成 objectDATA:用户创建对象的数据。它只是 base64 string,但典型大小从 50Kb 到 3Mb 不等。 NAME:短名称,用户指定,字符串。 IMG:显示用户创建对象预览的 png 图像文件。典型大小可达 100Kb。记录创建后:不能以任何方式删除或修改。 任何记录都可以通过-id从任何安装了游戏的设备上检索。 如果用户尝试保存重复记录 - 服务器只返回已存储记录的 id。在写入数据库之前通过比较 objectData 值确定重复。
我的问题是:
这样的行为可以在 CloudKit 中完成吗?
我在哪里可以找到一些很好的示例教程(在 Objective C 中),这些教程表明我很喜欢使用 CloudKit 并按照我的描述存储记录?或者也许有人可以帮助编写代码 sn-ps?
可能无法检查重复项,但没关系... 我的主要目标 - 实现对 CloudKit 的读写。
另外,有大小限制吗?我担心 objectDATA fileld...
【问题讨论】:
【参考方案1】:是的,所有这些都可以使用 CloudKit 完成。我认为您应该将 objectDATA 存储在 CloudKit 的 CKAsset 字段中。然后根本没有大小限制。您肯定希望将 IMG 存储在 CKAsset 中。
记录数据的总大小限制为 1 MB,但资产不计入该限制。
当您开始为某个应用使用 CloudKit 时,您将获得 5GB 的免费数据以及每个应用用户 100MB 的数据。
Apple 有一个不错的演示应用程序,它将向您展示您请求的大部分功能。只需查看 CloudKit Atlas 演示,地址为:https://developer.apple.com/wwdc/resources/sample-code/
如果您打算使用 Swift 作为编程语言(我可以建议),请查看:https://github.com/evermeer/EVCloudKitDao
【讨论】:
谢谢。我能够将我的数据写入服务器,就像使用 CKAsset 和简单的方式写入字节变量一样。但是上传 1MB 需要 8-9 秒!太慢了。另外,如何向用户显示上传进度? 由于您永远不知道需要多长时间并且无法从 CloudKit 操作中获取该信息,因此您无法添加进度指示器。您唯一能做的就是显示一个微调器并在完成块中删除它。也许您可以通过将数据分成 100KB 左右的块并将节目保存在单独的记录中来自己解决这个问题。 如果我知道文件大小和总发送字节数,我可以显示进度。我之前使用自定义服务器并使用 Afnetworking 所做的。以上是关于CloudKit 用于我的 iOS 游戏的主要内容,如果未能解决你的问题,请参考以下文章
无法从 Cloudkit Cloud (JS) 检索所有记录
cloudkit 数据未显示在提交的应用程序 iOS 8.1 中