Когда вы создаете CKShare
, вы можете установить значение по умолчанию publicPermission
в .readWrite
, чтобы люди могли только получить ссылку на ваш ресурс, чтобы начать работу.используя общую запись.Вот пример:
//:: Step 1 :: Create the rootRecord and share
let rootRecord = CKRecord(recordType: "...", recordID: CKRecordID(recordName: "...", zoneID: "..."))
let share = CKShare(rootRecord: rootRecord)
share[CKShareTitleKey] = "..." as CKRecordValue
share[CKShareTypeKey] = "com.example.YourApp" as CKRecordValue
share.publicPermission = .readWrite //<-- This is the important part
//:: Step 2:: Save the share to CloudKit
let operation = CKModifyRecordsOperation(recordsToSave: [rootRecord, share], recordIDsToDelete: nil)
operation.savePolicy = .changedKeys
operation.modifyRecordsCompletionBlock = { records, recordIDs, error in
if let error = error{
print(error)
}else{
if let url = share.url{
//:: Step 3 :: Grab the share URL
print(url.absoluteString) //<-- Save this URL somewhere that you can send to people
}
}
}
С этим уровнем publicPermission
вам не нужен CKUserIdentity
для добавления участника.Вы можете добавить их позже, когда они начнут использовать ваше приложение.
См. документы publicPermission здесь для получения дополнительной информации.
Удачи!