如何查明 CloudKit 订阅何时被删除?

2024-01-06

我在我的 iOS 应用程序中使用 CloudKit。

在我的应用程序中,每当用户修改某些数据时,我都会更新 CloudKit 私有数据库,以便用户的其他设备也可以更新。

用户可以启用/禁用此同步机制。

当用户启用同步时,我创建一个订阅并将本地数据推送到 CloudKit。

如果用户已登录到其他设备,他们将开始按预期获取有关私有数据库更改的远程通知。

该应用程序显示了一个UISwitch供用户启用/禁用同步。

假设用户有 2 台设备DeviceA and DeviceB这表明同步已通过设置启用UISwitch.isOn为真。

如果用户禁用同步DeviceA,然后删除订阅并进行更改DeviceA不触发远程通知DeviceB正如预期的那样。

But DeviceB仍然显示同步已启用。

有没有办法知道订阅何时被删除?

我知道关于CKFetchSubscriptionsOperation https://developer.apple.com/documentation/cloudkit/ckfetchsubscriptionsoperation。我可以致电CKFetchSubscriptionsOperation定期了解订阅情况。有更好的方法吗?


这是一个great问题,也是我遇到的问题。你是对的。了解订阅状态的唯一方法是查询可用的内容CKFetchSubscriptionsOperation.

一种可能的解决方法是创建一个recordType叫做类似的东西Subscription并保存subscriptionIDs 用户当前正在使用 as常规CloudKit记录(只需使用一个String财产在CKRecord).

然后,当他们在设备上取消订阅时,您可以更新Subscription记录,他们的所有设备都会收到更改通知。然后应用程序会更新actual订阅基于subscriptionID是用户可用的。

所以这是一个潜在的工作流程:

  1. DeviceA取消订阅subscription1.
  2. DeviceA删除subscriptionRecord1来自Subscription table.
  3. DeviceA删除实际的subscription1订阅使用CKModifySubscriptionsOperation().
  4. DeviceB收到通知subscriptionRecord1被删除并翻转同步UISwitch关闭(我假设您正在使用本地持久性方法(例如数据库或UserDefaults).

希望这有帮助。如果您有任何疑问,请告诉我。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何查明 CloudKit 订阅何时被删除? 的相关文章

  • GeoFire Swift 3 - 保存和更新坐标

    我正在尝试使用 GeoFire 将坐标存储到 Firebase 数据库中 我不确定如何更新新坐标 因为它们每秒都会更改 更新 随着childByAutoId 它正在为每辆自行车生成一个新的唯一 ID 如何引用这个唯一的自行车 ID 例如 用
  • 是否可以使用 Firebase 安排推送通知? [复制]

    这个问题在这里已经有答案了 我已经阅读了我能找到的所有文档 但仍然不知道这是否可行 如果我是用户 我可以安排特定时间的推送通知吗 Example 1 我是用户并打开应用程序 2 我允许通知并转到 pickerView 或其他任何内容 并设置
  • 如何接收有关与我共享的记录中所做更改的 CloudKit 通知?

    我有两个 iCloud 帐户 A and B 在两个不同的设备上 来自其中之一 A 我将 ckrecord 分享给另一个人 B 像这样 let controller UICloudSharingController controller p
  • 适用于 iPhone / iPad / iOS 的快速、精益 PDF 查看器 - 提示和提示?

    最近有很多关于绘制 PDF 的问题 是的 您可以使用UIWebView但这无法提供您所期望的优秀 PDF 查看器的性能和功能 您可以绘制PDF页面到 CALayer http www cocoabuilder com archive coc
  • UIButton的高亮状态由什么控制事件开始和结束

    我正在创建类似钢琴的视图UIButton作为钢琴键 什么UIControlEvents当按钮获得和失去突出显示状态时 我应该监听以获得回调吗 我试图创建子类UIButton并添加属性观察者highlighted并且运行良好 然而 有时我需要
  • 推送动画,没有阴影和停电

    我有一个简单的iOS NavigationController基于应用程序 二UICollectionViews 相继 如果元素打开 第一个合集 被点击时 第二集 将被打开 非常简单 重要的提示 Both UICollectionViews
  • ios水平居中约束问题?

    I am having hard time in learning constraints auto layout in iOS I have used any width any height I have a storyboard sc
  • 在 iOS 中,如何创建一个始终位于所有其他视图控制器之上的按钮?

    无论是否呈现模态或用户执行任何类型的转场 有没有办法让按钮在整个应用程序中 始终位于顶部 而不是屏幕顶部 有什么方法可以让这个按钮可拖动并可捕捉到屏幕上吗 我正在以苹果自己的辅助触摸作为此类按钮的示例 您可以通过创建自己的子类来做到这一点U
  • 水平 UICollectionView 单行布局

    我正在尝试使用以下命令设置简单的水平布局UICollectionView 兜圈子却没有达到预期的结果 所以任何指针或例子将不胜感激 我粘贴经常更改的代码但没有成功可能没什么意义 该图像显示两行 第一行是单个项目 尺寸正确并且在中心正确对齐
  • Swift 中的 import 语句是否有相关成本?

    阅读字符串宣言 我看到一个段落 https github com apple swift blob master docs StringManifesto md batteries included关于避免Foundation不需要的时候导
  • Xcode 8 / Swift 3:“UIViewController 类型的表达式?未使用”警告

    我有以下函数 它之前编译得很干净 但在 Xcode 8 中生成警告 func exitViewController navigationController popViewController animated true UIViewCon
  • iOS - UITableViewCell 使文本加粗

    我有一个字符串 NSString userInfo James Johnson james 我想做的就是大胆James Johnson并保留 james正常字体 所以我尝试过的是使用NSAttributedString但为了完成这个过程 我
  • 从未调用过交互式委托方法

    我想在 ViewController 1 和 NavigationViewController 2 之间进行交互式转换 NavigationController 通过按钮调用 因此呈现时没有交互转换 它可以通过按钮或 UIPanGestur
  • SwiftUI 意外地自动弹出 NavigationLink

    我有一个简单的用例 其中一个屏幕使用 NavigationLink 推送另一个屏幕 iOS 14 5 有一个奇怪的行为 即推送的屏幕在被推送后立即弹出 Code NavigationLink destination EmptyView Em
  • 如何为 iPhone 6+、6 和 5 指定不同尺寸?

    我想让 iPhone 6 6 和 5 上的视图看起来几乎相同 在附图中 我的意思是 例如 取消 按钮在 iPhone 5 中距离屏幕左边缘应为 30 像素 在 6 中为 35 像素 在 6 中为 45 像素 其他元素也类似 如何为每种类型设
  • 有没有办法在 Firebase 中等待查询完成?

    我正在使用 TableView 在 Viewcontroller 中的 iOS 应用程序中进行查询 我想确保在继续加载 TableView 之前我的查询已经返回 有没有办法保证查询已经完成 None
  • 如何使用phonegap在iOS应用程序中防止键盘推送webview

    当屏幕底部的输入字段获得焦点时 键盘会向上推我的网络视图 并且页面的上部不再可见 我想防止键盘推高网络视图 有人有主意吗 对焦 设置window scrollTo 0 0 这可以防止键盘完全推高 webview input on focus
  • 使用 UITabBarController 时覆盖整个屏幕的视图?

    我想在 UITabBarController 设置中在整个屏幕上覆盖 HUD 样式的透明图形 执行此操作的按钮位于第一个选项卡的屏幕 FirstViewController 中 并且覆盖层也应该覆盖选项卡 这可能吗 您可以将新视图直接附加到
  • Xcode 异步单元测试在主线程上等待

    我正在尝试使用 Xcode 中的单元测试来测试一些异步代码 但主线程被阻塞 问题在于 某些正在测试的代码期望从 iOS 类 AVFoundation 接收回调 但是 AVFoundation 类似乎只会在主线程上回调 问题是 如果我正在进行
  • 有没有办法在 onclick 触发时禁用 iPad/iPhone 上的闪烁/闪烁?

    所以我有一个有 onclick 事件的区域 在常规浏览器上单击时 它不会显示任何视觉变化 但在 iPad iPhone 上单击时 它会闪烁 闪烁 有什么办法可以阻止它在 iPad iPhone 上执行此操作吗 这是一个与我正在做的类似的示例

随机推荐

  • .NET Framework 4.5 目录在哪里?

    我已经安装了 Windows 8 Visual Studio 2012 但没有 v4 5 目录 WINDIR Microsoft NET Framework 我是否做错了什么 或者 NET 4 5 与其他版本不同 如果是因为我没有安装工具
  • 我需要什么 uri 模式才能从手持设备与 PC 进行通信?

    正如我被提醒的那样here https stackoverflow com questions 22306678 why am i getting unable to connect to the remote server 我可能需要使用
  • 何时子类化而不是区分行为

    我很难决定何时应该子类化 而不是仅仅添加代表类的不同模式的实例变量 然后让类的方法根据所选模式起作用 例如 假设我有一个base car班级 在我的程序中 我将处理三种不同类型的汽车 赛车 busses and 家庭型号 每个人都有自己的齿
  • 将文本附加到文件末尾

    我使用下面的代码段在每次调用时将文本写入文件末尾 但是 它会擦除 旧数据 然后将新数据写入文件的开头 如何修复以下代码以便附加新数据always文件末尾 public boolean writeToFile String directory
  • Tweepy 搜索查询问题

    我正在开发一个使用 Twitter 的 REST API 分析数据的程序 我希望使用具有多个关键字的查询来获取我正在寻找的结果 但是 我在使用搜索查询获取特定结果时遇到问题 我已按照文档使用 OR 搜索多个单词 但它仅在一定程度上有效 在此
  • 在Shiny中获取用户IP

    有没有办法获取访问闪亮应用程序的人的IP 希望有一个 R Shiny 解决方案 但我也可以接受 javascript 解决方案 我想对 IP 进行反向地理编码 以制作图表来可视化大多数用户从哪些国家 地区访问该应用程序 然后将该信息放入应用
  • 在 UICollectionView/UITableView 中对滚动视图的偏移进行动画处理会导致单元格过早消失

    我们有一个 UICollectionView 其自定义布局与 UITableView 非常相似 它垂直滚动 UICollectionView 仅同时显 示 3 个单元格 其中之一是当前活动的单元格 1 2 3 此处的活动单元格为 2 单元格
  • 如何获取Lua哈希表中键的数量?

    myTable myTable foo 12 myTable bar blah print myTable this prints 0 我实际上是否必须迭代表中的项目才能获取键的数量 numItems 0 for k v in pairs
  • 如何向字符串添加度数符号?

    我正在用 Objective C 编写 如何向字符串添加度数符号 我知道它的unicode 00B0和 UTF8 C2 B0 使用字符串文字 u00B0 对于 Unicode 字符 它始终是 u 后跟字符代码 NSString temper
  • 无法与空值合并; neo4j 中“无法使用 null 属性值合并节点”

    我的 csv 中有一个列 如下所示 我正在使用此代码来测试日期分割的工作原理 LOAD CSV WITH HEADERS FROM file some csv csv AS line WITH SPLIT line date of birt
  • 关于循环排列

    我学过数学 然后我就想到了这个问题 有两个排列 A 和 B 以及一个整数 M 如果我们可以从 A 到 B 进行以下操作 我们就说 A 几乎等于 B 1 选择排列 A 的 M 长度段 2 对其进行向右循环移位 因此 如果子段是 1 2 3 4
  • 基于视图状态在 Page_PreRender 中创建动态控件会导致按钮 OnClick 事件不起作用

    我意识到应该在 Page Load 和 Page Init 中创建动态控件 以便将它们注册到控件树中 我创建了一个自定义控件 需要在按钮 OnClick 事件中使用 ViewState 然后使用此 ViewState 动态创建控件 由于生命
  • 两行代码的冲突使代码无法按照我的意思工作,我可以做些什么不同的事情来完成这项工作(?)

    尝试自己运行以下代码 您会注意到 can t 更改为 CAN t 但我希望它更改为 CAN NOT 另一方面 我想保留第一行代码 它将 can 更改为 CAN 我怎样才能实现这个 can CAN can t CAN NOT 您必须删除 从默
  • 复数如何捕获 FFT 结果中的相位、幅度和频率?

    据我了解 幅度和相位是在 fft 结果的实部和虚部中捕获的 但每个样本如何捕获相位呢 相位与时域中提供的 N 个离散样本相关吗 也就是说 如果输入样本一秒钟包含 44100 个样本 那么 FFT 的每个结果值是否代表相位的 1 44100
  • 如何在CSS中获得图像周围的白色轮廓

    我正在尝试设置周围有白色边框的图像样式 如下所示 如果我这样做 ul class learn li class thumbnaile img src assets allyson jpg class stretch li ul 然后向 th
  • 为什么我的 Matlab for 循环代码比我的矢量化版本更快

    我一直听说矢量化代码比 MATLAB 中的 for 循环运行得更快 然而 当我尝试向量化 MATLAB 代码时 它似乎运行得更慢 I used tic and toc来测量时间 我只更改了程序中单个函数的实现 我的矢量化版本运行了47 22
  • 添加 php 到 html 打印格式 %1$s, %2$s, %3$s

    我想添加自定义字段 h4 Some text h4 to html format div class div class cruises layout div class image wrapper 1 s 3 s 9 s div div
  • 直接从过程/函数获取 TAdvEdit.Text

    您好 我收到错误 E2197 DCC 错误 proj1 pas 34 E2197 常量对象无法作为 var 参数传递 unit proj1 interface uses Winapi Windows Winapi Messages Syst
  • CSS 未在 IE 10 中呈现

    CSS 文件不会在 IE 9 和 10 中呈现 但在兼容模式下运行良好 我在 IE 10 中收到以下错误 SEC7113 CSS由于 mime 类型不匹配而被忽略 其中我在响应标头中没有得到内容类型 此外 这是在我本地的 任何建议都可以 它
  • 如何查明 CloudKit 订阅何时被删除?

    我在我的 iOS 应用程序中使用 CloudKit 在我的应用程序中 每当用户修改某些数据时 我都会更新 CloudKit 私有数据库 以便用户的其他设备也可以更新 用户可以启用 禁用此同步机制 当用户启用同步时 我创建一个订阅并将本地数据