Cloudability
示例
要运行示例项目,请克隆仓库,并首先从 Example 目录运行 pod install
安装
Cloudability 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile。
pod 'Cloudability'使用方法
- 用
Cloudable标记您的对象。 - 在某个地方创建一个
Cloud实例。 - 调用
cloud.switchOn(rule:completionHandler:)来启动它。 - 完成
当您删除一个 Cloudable 对象时,请使用 realm.delete(cloudableObject:) 代替。
可选的,
- 从您的 realm 配置中排除
PendingRelationship和SyncedEntity。尽管它们存储在另一个 realm 文件中,在 documents/cloudability.realm。 - 监听推送通知。默认情况下,Cloudability 为私有和共享数据库创建了数据库订阅。当您收到通知时,可以调用
cloud.pull(_:)。 - 使您的对象符合
HasAfterMergeAction和HasBeforeDeletionAction。
行为
在创建Cloud时,它支持多种zoneType,但只有.sameZone(String)被测试过(也就是说,在我的应用程序中使用过)。如果您使用的是默认的CKContainer或默认的CKZone,可能会丢失一些功能。
当您打开Cloud时,它将立即执行同步。如果您的设备尚未登录到iCloud,您将收到一个错误。您应该检查它是否是您关心的CloudError。
默认情况下,Cloudability为私有和共享数据库创建数据库订阅。如果您想要其他订阅,您必须自己处理。
Cloudability会监听数据库变更,并自动进行推送。但是,Realm Observation对删除对象不太关心,因此在删除Cloudable对象时,您应该使用realm.delete(cloudableObject:)。
对象之间的关系在与CloudKit通信时会被转换为CKReference。LinkingObjects以及与不代表Cloudable的对象的关系将被忽略。
仍在开发中
甚至未经过单元测试。在iOS应用程序Best Before中使用。
作者
int123c, [email protected]
许可
Cloudability遵循MIT许可。有关更多信息,请参阅LICENSE文件。