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文件。