标签: ckmodifyrecordsoperation

什么是CKModifyRecordsOperation中的clientChangeTokenData?

我正在我的应用程序中进行CloudKit同步("微小数据,所有设备"模型,私有数据库中的自定义区域).

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

从提取操作修改记录时,请使用此属性指定客户端生成的数据标记,以指示上次修改的记录的版本.比较您在下一次记录提取中提供给数据令牌的数据令牌,以确认服务器已成功接收设备的上次修改请求.

我不明白为什么我应该打扰,因为每个请求,我得到一个完成块,告诉我服务器是否已成功收到我的请求.为什么我需要手动比较此客户端令牌?

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

如果需要,我如何正确生成此令牌,因为我的所有记录更改CKModifyRecordsOperation(我的API使用目的是批处理操作).这里的一般工作流程是什么?

谢谢.

ios cloudkit ckmodifyrecordsoperation

10
推荐指数
2
解决办法
686
查看次数

CKModifyRecordsOperation modifyRecordsCompletionBlock未被调用

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

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

modifyOperations.modifyRecordsCompletionBlock = ^(NSArray *savedRecords, NSArray *deletedRecordIDs, NSError *error)
{
    if(error){
        NSLog(@"Error: %@", error.localizedDescription);
    }

    item.creatorRecordId = record.recordID;
};
Run Code Online (Sandbox Code Playgroud)

然后我正在使用

[self.publicDB addOperation:modifyOperations];
Run Code Online (Sandbox Code Playgroud)

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

objective-c ios cloudkit ckmodifyrecordsoperation

5
推荐指数
1
解决办法
839
查看次数

CKModifyRecordsOperation完成Swift 2.0

我有下面的代码,但在使用Xcode 7和Swift 2.0构建时出现错误

错误是Cannot call value non-function type (([CKRecord]?, [CKRecordID]?, NSError?) -> Void)? 谢谢

                    let saveRecordsOperation = CKModifyRecordsOperation()

                var ckRecordsArray = [CKRecord]()
                // set values to ckRecordsArray

                saveRecordsOperation.recordsToSave = ckRecordsArray
                saveRecordsOperation.savePolicy = .IfServerRecordUnchanged



                saveRecordsOperation.modifyRecordsCompletionBlock { savedRecords, deletedRecordIDs, error in
                    // deal with conflicts
                    // set completionHandler of wrapper operation if it's the case
                    if saveRecordsOperation.finished == true {

                    }
                }

                database.addOperation(saveRecordsOperation)
Run Code Online (Sandbox Code Playgroud)

ios completion-block xcode7 swift2 ckmodifyrecordsoperation

3
推荐指数
1
解决办法
901
查看次数