如何将CKRecordZone分配给CKRecord

问题描述 投票:-1回答:1

我正在尝试创建一个数据库,其中管理员用户可以创建一个存储为组CKRecord类型的组。我希望将此记录放置在以admin用户决定的组名命名的自定义区域中。如何初始化要分配给该自定义区域的组专用记录(不使用已弃用的功能)。

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

 }
ios swift cloudkit ckrecord ckrecordzone
1个回答
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应该保证是唯一的 - 否则你可能会遇到问题。

© www.soinside.com 2019 - 2024. All rights reserved.