When i try to save CKRecord with CKShare using setModifyRecordsCompletionBlock
NSOperationQueue * quwuw = [[NSOperationQueue alloc] init];
[quwuw setMaxConcurrentOperationCount:1];
[self createOrFetchZone:^(CKRecordZone *rzone, NSError *error) {
CKRecordID *recordID = [[CKRecordID alloc] initWithRecordName:recordId zoneID:custZone.zoneID];
[[self privateCloudDatabase] fetchRecordWithID:recordID completionHandler:^(CKRecord *record, NSError *error) {
if (error) {
dispatch_async(dispatch_get_main_queue(), ^{
prephandler(nil, nil,error);
});
return;
}
CKShare * share = [[CKShare alloc] initWithRootRecord:record];
share[CKShareTitleKey] = @"example";
[share setPublicPermission:CKShareParticipantPermissionReadWrite];
CKModifyRecordsOperation * op = [[CKModifyRecordsOperation alloc] initWithRecordsToSave:@[share, record] recordIDsToDelete:nil];
[op setModifyRecordsCompletionBlock:^(NSArray<CKRecord *> * _Nullable savedRecords, NSArray<CKRecordID *> * _Nullable deletedRecordIDs, NSError * _Nullable operationError) {
if (operationError == nil) {
dispatch_async(dispatch_get_main_queue(), ^{
prephandler(share, [CKContainer defaultContainer],operationError);
});
}
else {
dispatch_async(dispatch_get_main_queue(), ^{
prephandler(share, [CKContainer defaultContainer],operationError);
});
}
}];
[op setDatabase:[self privateCloudDatabase]];
[quwuw addOperation:op];
}];
}];
I got error with userinfo :
CKErrorDescription = "Failed to modify some records";
CKPartialErrors = {
"<CKRecordID: 0x282af5da0; recordName=Share-76902C70-A6CD-4A12-B6DD-6371A1578FBD, zoneID=someCustomZoneName:__defaultOwner__>" = "<CKError 0x28242a670: "Batch Request Failed" (22/2024); server message = "Atomic failure"; op = 80E158204C153900; uuid = 81B2BAEB-5ADE-447C-A29C-F8D8D174107D; container ID = "iCloud.com.xxxx.cloudkit-objC">";
"<CKRecordID: 0x282af5b20; recordName=0CA7AA50-FCD0-4964-984D-237031BB7106, zoneID=someCustomZoneName:__defaultOwner__>" = "<CKError 0x28242a490: "Invalid Arguments" (12/2006); server message = "Chaining supported for hierarchical sharing only"; op = 80E158204C153900; uuid = 81B2BAEB-5ADE-447C-A29C-F8D8D174107D; container ID = "iCloud.com.xxxx.cloudkit-objC">";
};
ContainerID = "iCloud.com.xxxx.cloudkit-objC";
NSDebugDescription = "CKInternalErrorDomain: 1011";
NSLocalizedDescription = "Failed to modify some records";
NSUnderlyingError = "<CKError 0x28242a2e0: "Partial Failure" (1011); "Failed to modify some records"; partial errors: {nt0CA7AA50-FCD0-4964-984D-237031BB7106:(someCustomZoneName:__defaultOwner__) = <CKError 0x28242a490: "Invalid Arguments" (12/2006); server message = "Chaining supported for hierarchical sharing only"; op = 80E158204C153900; uuid = 81B2BAEB-5ADE-447C-A29C-F8D8D174107D>nt... 1 "Batch Request Failed" CKError's omited ...n}>";
RequestUUID = "81B2BAEB-5ADE-447C-A29C-F8D8D174107D";
My record has no parent. Is it possible to share only one CKRecord without set parent reference?