首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果所有者将我从CKShare on CloudKit中删除,如何通知

如果所有者将我从CKShare on CloudKit中删除,如何通知
EN

Stack Overflow用户
提问于 2018-10-12 23:35:45
回答 1查看 523关注 0票数 3

假设一张唱片的主人和我分享。我收到一个共享链接,我打开它并接受这样的共享:

代码语言:javascript
复制
let operation = CKAcceptSharesOperation(shareMetadatas: [metadata])
operation.acceptSharesCompletionBlock = { error in
  if let error = error{
    print("accept share error: \(error)")
  }else{
    //Share accepted...
  }
}
CloudKit.container.add(operation)

我以前也订阅过共享数据库,如下所示:

代码语言:javascript
复制
let subscriptionSharedDatabase = CKDatabaseSubscription(subscriptionID: "subscriptionSharedDatabase")
let sharedInfo = CKSubscription.NotificationInfo()
sharedInfo.shouldSendContentAvailable = true
sharedInfo.alertBody = "" //This needs to be set or pushes don't get sent
subscriptionSharedDatabase.notificationInfo = sharedInfo

let subShared = CKModifySubscriptionsOperation(subscriptionsToSave: [subscriptionSharedDatabase], subscriptionIDsToDelete: nil)
CloudKit.sharedDB.add(subShared)

但是现在假设CKShare 的所有者将我作为记录中的参与者删除,并将更新的参与者列表保存到CloudKit。

据我所知,我得到的仅通知是另一个共享数据库订阅(subscriptionSharedDatabase)更改,但没有更改或删除记录(我查看了这些记录,在获取它们时没有更改的记录)。

据我所知,向CKShare上的参与者发出更改通知的唯一方法是订阅cloudkit.share记录类型的通知,但在共享数据库中,这是不可用的,对吗?

当我被从CKShare中移除时,如何通知我

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-27 21:32:20

有趣的是,这没有答案。我刚刚实现了一些与CKShare相关的代码,它似乎运行得相当好。以下是基本的方法。

1)在我的应用程序开始时,我在共享数据库上做CKFetchRecordZonesOperation.fetchAllRecordZonesOperation(),以获取与我共享的所有当前记录区域。

2)我按照您的建议在共享数据库上设置了CKDatabaseSubscription

3)在共享数据库上收到此通知后,我将对所有共享记录区域执行批处理CKFetchRecordZoneChangesOperation。(您可以传递多个记录区域,以及每个区域的服务器更改令牌,以执行批量更新查询。)

4)如果任何共享未共享,但记录区域本身仍然有效,我观察到recordWithIDWasDeletedBlock运行了两次,一次是使用未共享的CKRecord,一次是使用相关的CKShare

5) (我还没有完全弄清楚这一部分),如果该共享是给定用户的最后一个共享,则该用户的整个共享记录区域将从我的共享数据库中删除。我还没有完全弄清楚如何最好地处理这个部分。每次获得CKDatabaseNotification时,我都可以查询新的记录区域,但这似乎很浪费。我看到我可以运行CKFetchDatabaseChanges操作,它通知我更改的区域,但我还没有弄清楚什么时候是运行它的最佳时间。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52788219

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档