我正在尝试建立一个数据库,管理员用户可以在其中创建一个存储为组CKRecord类型的组。我希望将此记录放置一个自定义区域,该区域以管理员用户决定的组名称命名。如何初始化要分配给该自定义区域的组私有记录(不使用不推荐使用的功能)。
func createGroup(groupName: String){
let groupRecord = CKRecord(recordType: recordTypes.group)
groupRecord[groupRecordType.groupName] = groupName
let share = CKShare(rootRecord: groupRecord)
share.publicPermission = .readWrite
let groupZone = CKRecordZone(zoneName: groupName)
//Need to somehow connect the groupZone to the groupRecord
}
答案 0 :(得分:0)
您可以使用其他CKShare初始化程序:
CKShare(rootRecord: CKRecord, shareID: CKRecord.ID)
recordZone是CKRecord.ID的一部分:
CKRecord.ID(recordName: String, zoneID: CKRecordZone.ID)
所以更像是:
func createGroup(groupName: String){
let groupRecord = CKRecord(recordType: recordTypes.group)
groupRecord[groupRecordType.groupName] = groupName
let groupZone = CKRecordZone(zoneName: groupName)
let shareID = CKRecord.ID(recordName: groupName, zoneID: groupZone)
let share = CKShare(rootRecord: groupRecord, shareID: shareID)
share.publicPermission = .readWrite
}
recordName应该保证是唯一的-否则您可能会遇到问题。