一便便💩
使用Cloudkit,以及在iOS和Swift中进行本地化
因此,我的最新应用程序在8个月内就淘汰了8个应用程序(现在我最多有6个应用程序,其中3个贴纸包为1个,所以我提前了)。 我想要通过这些应用实现的部分工作是学习新知识。 到目前为止,我的冒险经历是我使用Photos和HealthKit以及其他我以前不曾使用过的组件。
对于下一个应用程序,我决定看一下CloudKit。 跨设备同步总是给开发人员带来痛苦,尤其是当您不想创造糟糕的体验并且用户期望这些东西能够正常工作时。
我最新的应用程序非常简单。 尽管我和我的朋友都长大了,但我们仍然有愚蠢的一面。 有时候,我们可能会为年轻时的歌曲键入歌词,或者只是发送表情符号。 为此,我构建了“一堆便便”,这是一种创建单个字符或整个短语(如合唱)重复的简单方法。
第一个版本现已发布,但我已经开始着手进行下一个更新,即cloudkit集成。
我不确定它会多么复杂,但实际上非常简单。 通过开发门户网站创建容器后,创建记录很简单,就像创建对象和调用保存方法一样。 与典型的关系数据库不同,不需要预先定义“方案”。 当创建“ recordType”的对象时(从关系的角度来说,这可以是您想要称为“表”的任何对象)。 然后保存对象会自动创建架构。 您可以在Container仪表板中定义不同的索引,但是会为您创建一个唯一的ID。
让容器= CKContainer(标识符:AppConstants.containerIdentifier)
让db = container.privateCloudDatabase
let record = CKRecord(recordType:“ MyRecordType”)
record [“ text”] =“某些文本”作为CKRecordValue
db.save(record,completeHandler:{记录,错误
如果让err =错误{
// print(err)
}
})
您可以访问3种类型的容器来保存数据。
- 公共-公共容器正好在罐头上写着。 上市。 使用您的应用的任何人都可以访问任何记录。 苹果免费提供大量空间。
- 私有–私有容器对用户是私有的,并且使用他们自己的iCloud存储空间。 即使作为应用程序的开发人员,您也无法查看他人的私人记录,只能查看您自己的记录。 这是一件好事! 这表明苹果非常重视隐私。
- 共享–共享容器再次非常明显。 它们基本上是私有容器,用户可以在其中允许其联系人的特定子集查看和编辑相同的数据。 一个简单的例子可能是同一家庭成员之间共享的待办事项清单。
检索记录也非常容易。 基本上,您可以定义要检索的recordTypes并调用适当的方法。 实际上,它是如此简单,我不知道为什么我没有更早开始使用它。 我正在认真考虑重新访问一些较旧的应用程序并集成Cloudkit。 这也是将身份验证整合到您的应用程序的一种很好的,非干扰性的方法。
我还在此应用中使用了本地化功能。 我选择走1条故事板的路线,并以编程方式设置标签等的值。我仍在设计中,不想拥有多个Xib文件,因此绝对值得考虑。 同样,它也非常简单。 您只需为要支持的所有语言定义一些KEY:Value对。 然后使用NSLocalizedString呈现用户语言的值。
//语言plist文件的示例
“ BUTTON_TITLE” = “点击我”;
//在viewController中设置标题的示例
button.setTitle(NSLocalizedString(“ BUTTON_TITLE”,评论:“”), 表示 :.normal)
如果您尚未使用CloudKit,建议您在下一个项目中对其进行评估https://developer.apple.com/icloud/cloudkit/
它支持图像上传,基于位置的查询,并提供了一种方便的身份验证方式,并且拥有1PB的资产存储,10TB的数据库存储和400 req / sec,如果您突破这些限制,您将获得极大的成功。
因此,出去尝试一下。
- cloudkit错误没有为资产收到authToken
- 该应用程序缺less必需的权利com.apple.developer.icloud-services'
- iOS,CloudKit – 当我的应用程序启动时,我需要做一个抓取吗?
- 我可以将CloudKit数据传输到新的容器吗?
- 删除的CloudKitlogging重新出现
- 错误_BSMachError:(os / kern)在接收到CloudKitlogging添加的远程通知后无效的能力(20)
- 如何与CloudKit的CKShare共享?
- CKFetchNotificationChangesOperation有时不会返回UPDATE,DELETE通知
- typesCKSubscriptionOptionsFiresOnRecordUpdate的CKSubscription不起作用