问题标签 [ckfetchrecordchangesopera]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1423 浏览

ios - CloudKit fetchRecordChangesOperation 给出“AppDefaultZone 不支持同步语义”

我正在使用 CKFetchRecordChangesOperation 和 CKFetchRecordsChangeToken 来获取更改,它告诉我“AppDefaultZone 不支持同步语义”。

这是有问题的代码:

这是它打印出来的错误

0 投票
1 回答
465 浏览

ios - CKFetchRecordChangesOperation 使用 nil 令牌调用时会下载哪些记录?

将从CKFetchRecordChangesOperation容器中检索所有记录吗?

我希望它能下载我所有的记录,因为我添加了许多不同的记录类型,但我没有得到。我已经用 nil 令牌初始化了它。

参考资料说:CKFetchRecordChangesOperation 对象报告指定记录区域中更改和删除的记录。使用这种类型的操作对象来优化本地管理的记录集的提取操作。具体来说,当您维护记录数据的本地缓存并需要定期将该缓存与服务器同步时使用它。

我什CKFetchRecordChangesOperation至从不同的设备运行以排除仅返回在其他设备上执行的更改的情况。

0 投票
1 回答
920 浏览

ios - cloudKit:公共数据库中的 CKFetchRecordChangesOperation

我使用 cloudKit 构建了一个 iOS 应用程序。我正在尝试批量获取 cloudKit 中的数据,以获取设备和 cloudKit 之间的增量,但似乎 CKFetchRecordChangesOperation 在公共数据库中不起作用。我唯一的选择是 CKQuery 来获取我的数据吗?例如:

我会非常感谢你的帮助。

0 投票
1 回答
543 浏览

macos - 如何使用 CKFetchNotificationChangesOperation?

如何使用我的 Mac 应用程序中CKFetchNotificationChangesOperation的订阅者处理和引导所有错过的通知CKSubscription- (void)application:(nonnull NSApplication *)application didReceiveRemoteNotification:(nonnull NSDictionary *)userInfo {我对该方法的代码如下,

我的应用程序是一个菜单,我希望它检查任何错过的通知并在单击菜单时正确处理它们。

更新:这是我一直在尝试的代码,但数组始终为空且没有错误。我正在通过运行应用程序、关闭应用程序、删除记录然后再次运行应用程序来进行测试。

0 投票
1 回答
105 浏览

ios - 更新通知的替代方法不起作用

UPDATE 通知停止工作。你有什么解决方法,直到 Apple 想出办法?

CKFetchNotificationChangesOperation 有时不返回 UPDATE、DELETE 通知 CloudKit 推送通知记录更新停止工作 https://forums.developer.apple.com/thread/7288

我的快速修复,每分钟,当用户触发时UIRefreshControl,我下载自上次更新以来修改的所有记录。有用。但我心里有个更好的主意,好奇,你怎么看。任何缺点。

我正在考虑向Change数据库添加一个表。它将有一个recordName, recordType,changeType字段。changeType可以有insert, update,delete字符串值。(或相应的 int 枚举)

我会CKSubscription只用Change桌子创建和观察。总是当在自定义表中创建、更新、删除记录时,我会做两件事,做那个动作,作为第二个动作,我会在Change表中创建一个“日志条目” 。因为它是 中的Insert操作Change,并且插入通知似乎有效,所以所有设备都会收到通知。他们可以下载引用的记录。

你看到什么缺点了吗?

0 投票
1 回答
169 浏览

ios - CKFetchRecordChangesOperation 有很多变化是正常的吗?

我在我的应用程序中使用 CloudKit,它似乎运行良好。但是,当我在新设备上初始化应用程序时,使用

我得到了很多更改,因为所有以前的删除和更改似乎都是同步的。

有没有更好的办法?例如,只需下载一整套当前数据并将 serverChangeToken 设置为当前值。

0 投票
2 回答
772 浏览

cloudkit - CloudKit:删除记录的 CKQueryOperation

有没有一种方法可以在不使用的情况下查询 CloudKit 以获取最近删除的项目(可能来自特定的时间戳)CKFetchRecordChangesOperation?我正在使用公共数据库,所以我不能使用自定义区域(这将是 的要求CKFetchRecordChangesOperation)......所以我需要一种方法来用公共数据库模拟这个。

我希望能够针对 CloudKit 记录中的更改有效地更新我的本地核心数据缓存。当您查询 CloudKit 记录时,CKRecord 似乎有一个creationDateandmodificationDate属性,可以查询该属性以查看最近创建/修改的记录,但这不适用于在 CloudKit 中删除的记录。

这里有什么有效的策略?

0 投票
2 回答
557 浏览

ios - CKFetchRecordChangesOperation 先返回垃圾数据

当previousServerToken 为null 时,CKFetchRecordChangesOperation 似乎需要多次通过才能下载第一组数据,然后重试直到moreComing 标志被清除。

这不是因为记录太多——在我的测试中,我只有大约 40 条成员记录,每条记录都属于 6 个组之一。

第一遍给出了两个格式错误的成员记录;第二遍有时会发送来自尚未下载的组的一些成员记录,或者什么也不发送。只有在第三遍之后,它才会按预期下载所有剩余的组和成员。

任何想法为什么会这样?

0 投票
1 回答
1082 浏览

cloudkit - CKFetchDatabaseChangesOperation 不返回记录区域 ID

我在我的应用程序中使用 CloudKit,并开始遵循 WWDC 视频“CloudKit 最佳实践”中的最佳实践

首先要做的是检查我喜欢的更改,

我正在为其设置提取的私有数据库中有记录,但我只得到changeTokenUpdatedBlockfetchDatabaseChangesCompletion.

我是否正确地说,recordZoneWithIDChangedBlock当我运行此操作并将我的私有数据库的默认区域传递到此块时,我应该期望看到被击中?

这意味着当我调用 my 时fetchDatabaseChangesCompletion,没有什么可获取的,因为记录区域 ID 的数组为空:(注意,error为 nil)

0 投票
0 回答
482 浏览

cloudkit - CloudKit 使用 CKRecordID 获取记录

我从 iCloud 获取记录时遇到问题。我想访问获取的记录并从键值对中分配一个值。

我已经尝试过:

这是我的 fetchRecord 方法:

的结果:

是:

一切似乎都很好

结果:

如果我想将键“companyStreet”的值分配给我的标签,它会返回 nil:

编辑-> 解决 了我终于解决了我的问题。问题是我的 appDelegate,试图处理我的 CKNotification。我没有引用我现有的 TableViewController(嵌入在导航控制器 - TabBarController 中),而是创建了我的 TableViewController 的新实例。