Posts

Post not yet marked as solved
2 Replies
579 Views
Hi After macOS Big Sur 11 beta 9, has been released, LazyVGrid and GridItem structs are no longer available. I receive, on Xcode Version 12.0.1 (12A7300), the following compiler errors: "Cannot find 'LazyVGrid' in scope" "Cannot find 'GridItem' in scope" Is anyone else experiencing the same? Thank you
Posted Last updated
.
Post not yet marked as solved
1 Replies
1.1k Views
HiThank you for taking the time to read this post. I am pretty new to coding, so maybe my issues trying to implement CKShare with SwiftUI are due to a basic concept understanding, but I have been working on this for a few days and I can´t figure it out on my own.I would like to share a CKRecord on a custom zone of a user's private database. I would rather not use Apple's standard screens for adding and removing people (UICloudSharingController) as I found it doesn't match with my users' natural journey.I coded the lines below to User1 to create a CKShare and include as participants the CKUserIdentit of User2. I then captured the url for User2, so they can accept the share.On the Cloudkit dashboard, I can see the "cloudkit.share" type record on the User1's private database. User2 does appear on the Sharing Participants Field as Type: User and Acceptance: Invited.However, once User2 opens the url on a browser as an iCloud registered user, the following error is shown:iCloud has stopped respondingREPORTED ERROR TITLE A non-empty string is required.REPORTED ERROR TYPE UNHANDLED_EXCEPTIONERROR CONTEXT undefinedHas anyone dealt with something similar before? Is there any other way to include a known app's user on a CKShare?Thank you in advance for your help.Here my code:let share = CKShare(rootRecord: recordEquipo) share[CKShare.SystemFieldKey.title] = "Equipo" as CKRecordValue? share[CKShare.SystemFieldKey.shareType] = "Some type" as CKRecordValue? let fetchParticipantsOperation: CKFetchShareParticipantsOperation = CKFetchShareParticipantsOperation(userIdentityLookupInfos: [CKUserIdentity.LookupInfo(emailAddress: DTMemail)] ) fetchParticipantsOperation.fetchShareParticipantsCompletionBlock = {error in if let error = error { print("error for completion" + error.localizedDescription) DispatchQueue.main.async { completion(.failure(error)) } } } fetchParticipantsOperation.shareParticipantFetchedBlock = {participant in participant.permission = .readWrite share.addParticipant(participant) let modifyOperation: CKModifyRecordsOperation = CKModifyRecordsOperation(recordsToSave: [recordEquipo, share], recordIDsToDelete: nil) modifyOperation.savePolicy = .ifServerRecordUnchanged modifyOperation.perRecordCompletionBlock = {record, error in if let error = error { print("error for completion" + error.localizedDescription) completion(.failure(error)) } } modifyOperation.modifyRecordsCompletionBlock = {records, recordIDs, error in guard let ckrecords: [CKRecord] = records, let _: CKRecord = ckrecords.first, error == nil else { print("error in modifying the records " + error!.localizedDescription) completion(.failure(error!)) return } if (share.url != nil) { completion(.success(share.url!))} } baseDatosPrivada.add(modifyOperation) } contenedor.add(fetchParticipantsOperation)
Posted Last updated
.