【问题标题】:How to assign a CKRecordZone to a CKRecord如何将 CKRecordZone 分配给 CKRecord
【发布时间】:2019-03-23 03:33:39
【问题描述】:

我正在尝试创建一个数据库,管理员用户可以在其中创建一个组,该组存储为组 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

 }

【问题讨论】:

标签: ios swift cloudkit ckrecord ckrecordzone


【解决方案1】:

你可以使用不同的 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 应该保证是唯一的 - 否则您可能会遇到问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-08
    • 2016-10-20
    • 2020-09-19
    • 2016-03-01
    • 2015-02-15
    • 2020-07-14
    • 1970-01-01
    相关资源
    最近更新 更多