Cloudability 0.5.1

Cloudability 0.5.1

郭尚新 维护。



 
依赖项
RealmSwift>= 0
PromiseKit/CloudKit~> 6.0
 

  • int123c

Cloudability

CI Status Version License Platform

示例

要运行示例项目,请克隆仓库,并首先从 Example 目录运行 pod install

安装

Cloudability 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile。

pod 'Cloudability'

使用方法

  1. Cloudable 标记您的对象。
  2. 在某个地方创建一个 Cloud 实例。
  3. 调用 cloud.switchOn(rule:completionHandler:) 来启动它。
  4. 完成

当您删除一个 Cloudable 对象时,请使用 realm.delete(cloudableObject:) 代替。

可选的,

  • 从您的 realm 配置中排除 PendingRelationshipSyncedEntity。尽管它们存储在另一个 realm 文件中,在 documents/cloudability.realm。
  • 监听推送通知。默认情况下,Cloudability 为私有和共享数据库创建了数据库订阅。当您收到通知时,可以调用 cloud.pull(_:)
  • 使您的对象符合 HasAfterMergeActionHasBeforeDeletionAction

行为

在创建Cloud时,它支持多种zoneType,但只有.sameZone(String)被测试过(也就是说,在我的应用程序中使用过)。如果您使用的是默认的CKContainer或默认的CKZone,可能会丢失一些功能。

当您打开Cloud时,它将立即执行同步。如果您的设备尚未登录到iCloud,您将收到一个错误。您应该检查它是否是您关心的CloudError

默认情况下,Cloudability为私有和共享数据库创建数据库订阅。如果您想要其他订阅,您必须自己处理。

Cloudability会监听数据库变更,并自动进行推送。但是,Realm Observation对删除对象不太关心,因此在删除Cloudable对象时,您应该使用realm.delete(cloudableObject:)

对象之间的关系在与CloudKit通信时会被转换为CKReferenceLinkingObjects以及与不代表Cloudable的对象的关系将被忽略。

仍在开发中

甚至未经过单元测试。在iOS应用程序Best Before中使用。

作者

int123c, [email protected]

许可

Cloudability遵循MIT许可。有关更多信息,请参阅LICENSE文件。