CKModifyRecordsOperation modifyRecordsCompletionBlock 未被调用
CKModifyRecordsOperation modifyRecordsCompletionBlock not being called
我正在使用 CKModifyRecordsOperation
保存一组记录,如果我有互联网连接,一切正常,并且正在调用完成块。但是当我没有连接时,完成块没有被调用,我没有得到任何操作失败的信息。
我在完成块中使用以下代码
modifyOperations.modifyRecordsCompletionBlock = ^(NSArray *savedRecords, NSArray *deletedRecordIDs, NSError *error)
{
if(error){
NSLog(@"Error: %@", error.localizedDescription);
}
item.creatorRecordId = record.recordID;
};
然后我使用
执行操作
[self.publicDB addOperation:modifyOperations];
如果操作失败,例如在没有互联网连接的情况下,我该如何获取信息?
CloudKit 操作的 qualityOfService
属性 默认设置为 NSQualityOfServiceUtility
。
使用 NSQualityOfServiceUtility
或 NSQualityOfServiceBackground
的操作可能会被标记为使用 discretionary network requests。如果网络连接不佳,系统可以保留任意网络请求,因此在条件改善和系统发送请求之前,您可能无法从服务器获得响应。
如果您希望在所有情况下都立即发送您的请求,请将 CKOperation.qualityOfService
设置为 NSQualityOfServiceUserInitiated
或 NSQualityOfServiceUserInteractive
。
我正在使用 CKModifyRecordsOperation
保存一组记录,如果我有互联网连接,一切正常,并且正在调用完成块。但是当我没有连接时,完成块没有被调用,我没有得到任何操作失败的信息。
我在完成块中使用以下代码
modifyOperations.modifyRecordsCompletionBlock = ^(NSArray *savedRecords, NSArray *deletedRecordIDs, NSError *error)
{
if(error){
NSLog(@"Error: %@", error.localizedDescription);
}
item.creatorRecordId = record.recordID;
};
然后我使用
执行操作[self.publicDB addOperation:modifyOperations];
如果操作失败,例如在没有互联网连接的情况下,我该如何获取信息?
CloudKit 操作的 qualityOfService
属性 默认设置为 NSQualityOfServiceUtility
。
使用 NSQualityOfServiceUtility
或 NSQualityOfServiceBackground
的操作可能会被标记为使用 discretionary network requests。如果网络连接不佳,系统可以保留任意网络请求,因此在条件改善和系统发送请求之前,您可能无法从服务器获得响应。
如果您希望在所有情况下都立即发送您的请求,请将 CKOperation.qualityOfService
设置为 NSQualityOfServiceUserInitiated
或 NSQualityOfServiceUserInteractive
。