在 CloudKit 中创建指向多个 CKRecord 的引用列表

Posted

技术标签:

【中文标题】在 CloudKit 中创建指向多个 CKRecord 的引用列表【英文标题】:Create Reference List Pointing to Multiple CKRecords in CloudKit 【发布时间】:2017-09-06 05:19:06 【问题描述】:

Swift 3.1、Xcode 8.3.3

我在 CloudKit 中有一个名为 Aircraft 的记录类型,它有一个名为 fieldValues 的字段,其类型为 Reference List

在我的代码中,我有一个 aircraft CKRecord 和几个 fieldValue CKRecord,它们是飞机的子项。

如何将所有fieldValue 记录放入aircraft 的参考列表中?

创建CKReference 似乎只允许其中有一条记录:

let reference = CKReference(record: fieldValueRecord, action: .deleteSelf)

但我正在尝试将多个 fieldValues 连接到单个 aircraft。有任何想法吗?

【问题讨论】:

【参考方案1】:

Swift 3.1、Xcode 8.3.3

经过反复试验,我终于弄明白了。它是这样的:

//Parent record (Aircraft)
let recordAircraft = CKRecord(recordType: "Aircraft", recordID: ...)

//Add child references (FieldValue). As far as I know, the child records must have already been created and sent to CloudKit
var fieldValueReferences = [CKReference]()

for fieldValue in fieldValues
  let ref = CKReference(record: fieldValue, action: .deleteSelf)
  fieldValueReferences.append(ref)


//Assign the array of references to the key that represents your Reference List field
recordAircraft["fieldValues"] = fieldValueReferences as CKRecordValue

我希望这对其他人有所帮助。

【讨论】:

以上是关于在 CloudKit 中创建指向多个 CKRecord 的引用列表的主要内容,如果未能解决你的问题,请参考以下文章

如何在 CloudKit 中创建用户? [关闭]

在 Cloudkit 中创建 CKRecord?

在 CloudKit Dashboard 中创建自定义记录区

CloudKit 订阅不能在代码中创建吗?

swift 在UILabel中创建多个可指向链接

如何在 CloudKit 中创建记录作为孩子的记录列表?