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

Posted

技术标签:

【中文标题】调用 CKModifyRecordsOperation 时,出现错误:CKError: "Invalid Arguments" (12)。这是啥意思,我能做些啥呢?【英文标题】:When calling CKModifyRecordsOperation, I get an error: CKError: "Invalid Arguments" (12). What does this mean and what can I do about it?调用 CKModifyRecordsOperation 时,出现错误:CKError: "Invalid Arguments" (12)。这是什么意思,我能做些什么呢? 【发布时间】:2015-08-01 09:28:40 【问题描述】:

我用:

CKModifyRecordsOperation *cKModifyRecordsOperation = [[CKModifyRecordsOperation alloc] initWithRecordsToSave:recordsToAddOrSave recordIDsToDelete:recordsIDsToDelete];
cKModifyRecordsOperation.savePolicy = CKRecordSaveChangedKeys;
cKModifyRecordsOperation.modifyRecordsCompletionBlock = ^( NSArray *savedRecords, NSArray *deletedRecordIDs, NSError *error ) 
  if ( error )
  
      NSLog(error.description);
  

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

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

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

我查看了论坛并进行了 Google 搜索,但在 CKModifyRecordsOperation 的上下文中找不到有关此错误的任何有用信息。

【问题讨论】:

【参考方案1】:

我不是 100% 确定这一点,但这是我在 ChangedKeys 的文档中找到的:

A policy that saves only those fields of the record that actually changed, overwriting any values currently on the server. Unmodified fields are left untouched.

对我来说,听起来那个键只是用于修改记录,而不是删除它们。

【讨论】:

谢谢。我认为 ChangedKeys 应该删除服务器上不再存在于本地的记录。相比之下,对于 CKRecordSaveAllKeys,文档指出:“仅存在于服务器上的密钥保持不变。”【参考方案2】:

如果有人发现自己和我在同一个地方,当我使用类似的代码时,在要修改的记录数组中传递 CKRecordID 而不是 CKRecord 时,我收到了相同的错误代码。

也许这也是你的问题?

【讨论】:

以上是关于调用 CKModifyRecordsOperation 时,出现错误:CKError: "Invalid Arguments" (12)。这是啥意思,我能做些啥呢?的主要内容,如果未能解决你的问题,请参考以下文章

系统调用与函数调用

java三种调用方式(同步调用/回调/异步调用)

LINUX系统调用

引用调用 vs 复制调用调用

RPC 调用和 HTTP 调用的区别

js方法调用