I'm using CKModifyRecordsOperation to save a set of records and if I have internet connection all works well and completion block is being called. But when I don't have connection the completion block is not being called and I don't get any information that my operations failed.
I'm using the following code in completion block
modifyOperations.modifyRecordsCompletionBlock = ^(NSArray *savedRecords, NSArray *deletedRecordIDs, NSError *error)
{
if(error){
NSLog(@"Error: %@", error.localizedDescription);
}
item.creatorRecordId = record.recordID;
};
and then I'm performing operation using
[self.publicDB addOperation:modifyOperations];
Any ideas how can I get an information if the operation failed for example in the case where there is no internet connection?
CloudKit operations have their
qualityOfServiceproperty set toNSQualityOfServiceUtilityby default.Operations that use
NSQualityOfServiceUtilityorNSQualityOfServiceBackgroundmay be marked as using discretionary network requests. The system can hold discretionary network requests if network connectivity is poor, so you might not get a response from the server until conditions improve and the system sends the request.If you'd like your request to be sent immediately in all cases, set
CKOperation.qualityOfServicetoNSQualityOfServiceUserInitiatedorNSQualityOfServiceUserInteractive.