在 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)
但我正在尝试将多个 fieldValue
s 连接到单个 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 的引用列表的主要内容,如果未能解决你的问题,请参考以下文章