7

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

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

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

    item.creatorRecordId = record.recordID;
};

然后我正在使用

[self.publicDB addOperation:modifyOperations];

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

4

1 回答 1

8

CloudKit 操作的qualityOfService属性NSQualityOfServiceUtility默认设置为。

使用NSQualityOfServiceUtilityNSQualityOfServiceBackground可能被标记为使用任意网络请求的操作。如果网络连接不佳,系统可以保留任意网络请求,因此在条件改善并且系统发送请求之前,您可能无法从服务器获得响应。

如果您希望在任何情况下都立即发送您的请求,请设置CKOperation.qualityOfServiceNSQualityOfServiceUserInitiatedNSQualityOfServiceUserInteractive

于 2015-12-14T22:31:26.707 回答