问题标签 [ckmodifyrecordsoperation]

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 投票
2 回答
603 浏览

ios - 调用 CKModifyRecordsOperation 时,出现错误:CKError: "Invalid Arguments" (12)。这是什么意思,我能做些什么呢?

我用:

虽然这适用于某些记录类型,但对于特定的记录类型,我现在收到以下错误消息:

CKError 0x170844bc0:“无效参数”(12)

这很奇怪,因为它以前有效,即使对于这种记录类型也是如此。

我检查了论坛并进行了 Google 搜索,但在CKModifyRecordsOperation.

0 投票
1 回答
963 浏览

ios - CKModifyRecordsOperation completion Swift 2.0

I have the code below but I am shown an error when building with Xcode 7 and Swift 2.0

The error is Cannot call value non-function type (([CKRecord]?, [CKRecordID]?, NSError?) -> Void)? Thanks

0 投票
1 回答
1105 浏览

ios - CKModifyRecordsOperation modifyRecordsCompletionBlock 未被调用

CKModifyRecordsOperation用来保存一组记录,如果我有互联网连接,一切正常,并且正在调用完成块。但是当我没有连接时,不会调用完成块,并且我没有得到任何关于我的操作失败的信息。

我在完成块中使用以下代码

然后我正在使用

如果操作失败,例如在没有互联网连接的情况下,我该如何获取信息?

0 投票
2 回答
875 浏览

ios - CKModifyRecordsOperation 中的 clientChangeTokenData 是什么?

我正在我的应用程序中处理 CloudKit 同步(“微小数据,所有设备”模型,在私有数据库中有一个自定义区域)。

CKModifyRecordsOperation包含文档中描述clientChangeTokenData的类型的属性,NSData如下所示:

当您从 fetch 操作中修改记录时,请使用此属性指定客户端生成的数据标记,以指示您上次修改的记录版本。将您提供的数据令牌与下一条记录获取中的数据令牌进行比较,以确认服务器已成功接收到设备的最后一次修改请求。

考虑到每个请求,我不明白为什么要打扰,我会收到一个完成块,告诉我服务器是否已成功接收到我的请求。为什么我需要手动比较这个客户端令牌?

是否需要指定clientChangeTokenData才能正确处理我的用例?我跟踪本地数据更改并在每次数据更改时推送队列中的所有内容。通过区域订阅跟踪远程更改。

CKModifyRecordsOperation如果需要,鉴于我的(我的 API 使用旨在进行批处理操作)中有各种记录更改,我如何正确生成此令牌。这里的一般工作流程是什么?

谢谢你。

0 投票
2 回答
320 浏览

objective-c - CKModifyRecordsOperation 对象的 recordsToSave 属性能否在其 modifyRecordsCompletionBlock 中安全使用

假设我使用 CKModifyRecordsOperation 对象启动 saveOperation。我可以安全地假设对象的 recordsToSave 将存储在我在操作完成后执行的 modifyRecordsCompletionBlock 中访问它时在开始时给出的记录列表。

我会假设是这样,但是后来我在 Apple 文档中看到了这一行(基本上不确定“初始”是什么意思:数组的初始内容设置为您在 initWithRecordsToSave:recordIDsToDelete: 方法中指定的记录。您可以在执行操作之前根据需要修改此数组。

如果在极少数情况下它可以改变,那么我想在我的重试逻辑中采用另一种方式。

编辑添加代码

完成块定义为

0 投票
1 回答
1005 浏览

ios - 将记录 CKRecordID 保存到服务器时出错:将记录从类型“X”更新为“Y”的尝试无效

当我使用CKModifyRecordsOperation将多个表的记录保存到私有云数据库的默认区域时,它总是返回以下错误,但表“X”除外:

将记录保存到服务器时出错:将记录从“X”类型更新为“Y”的尝试无效

error.userInfo细节:

{
CKErrorDescription = "将记录 CKRecordID: 0x7fd7a3d4c0c0; 1:(_defaultZone: defaultOwner ) 保存到服务器时出错:将记录从'X'类型更新为'Y'的尝试无效";
ContainerID = "iCloud.com...";
NSDebugDescription = "CKInternalErrorDomain: 2006";
NSLocalizedDescription = "将记录保存到服务器时出错:将记录从'X'类型更新为'Y'的尝试无效";
NSUnderlyingError = "CKError 0x7fa0d250c4e0: \"Invalid Arguments\" (2006); 服务器消息 = \"从类型 'X' 到 'Y' 更新记录的尝试无效\"; uuid = E2E...D1E; 容器 ID = \ "iCloud.com...\"";
RequestUUID = "E2E...

错误键 = ck1rosofi;
}

相关代码片段:

0 投票
1 回答
190 浏览

ios - CKRecordZone 中的记录仍显示在 CloudKit 仪表板中

我们有一个将记录同步到 CloudKit 的应用程序。

它们存储在自定义区域中。我们需要提供一个从 CloudKit 中“清除所有数据”的功能。由于记录的数量可能很高,我们不想单独或批量删除它们(可能是很多批次)。所以我们直接删除自定义区域。

区域已成功删除,但记录仍显示在 CloudKit 仪表板中。这是预期的吗?

0 投票
0 回答
452 浏览

swift - CloudKit CK操作队列

我必须 CKOperations 并想在第一次操作完成后开始第二次操作。我如何“告诉”第二次手术等到第二次手术完成?

这是我的第一个操作(创建自定义区域):

这是我的第二次操作(存储记录):

0 投票
0 回答
102 浏览

ios - CloudKit - 保存记录进度未按预期执行

我有一个将带有图像的记录保存到 CloudKit 的功能。

一切都按预期工作,并且记录被保存和获取而没有问题。

我想显示上传进度以获得更好的用户体验,但是当我operation.perRecordProgressBlock {}在输出中打印进度时,就像

0.0 0.097003 0.990101 1.0

所以进度直接从 0.1% 到 99%。

我预计会有 10%、20% 等等……

使用的保存记录代码如下:

这是保持进展“顺利”的任何方式吗?喜欢以某种方式使用completionHandler?

欢迎提示。

感谢:D

0 投票
1 回答
509 浏览

swift - 如何向 CloudKit 中的现有记录添加字段

我有一个功能可以将用户名输入到 CloudKit 中的新记录名中(如下所示),但是我还需要将用户的“分数”添加到同一条记录中。

有没有办法通过引用其唯一的“recordName”值来插入另一个字段“usersScore”?