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

Cli*_*rum 2 cloudkit ckreference

斯威夫特 3.1,Xcode 8.3.3

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

在我的代码中,我有一个aircraftCKRecord 和几个fieldValue作为飞机子代的 CKRecord。

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

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

let reference = CKReference(record: fieldValueRecord, action: .deleteSelf)
Run Code Online (Sandbox Code Playgroud)

但我试图将许多fieldValues连接到单个aircraft. 有任何想法吗?

Cli*_*rum 6

斯威夫特 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
Run Code Online (Sandbox Code Playgroud)

我希望能帮助别人。