2

斯威夫特 3.1,Xcode 8.3.3

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

在我的代码中,我有一个aircraftCKRecord 和几个fieldValueCKRecords,它们是飞机的孩子。

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

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

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

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

4

1 回答 1

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

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

于 2017-09-06T21:22:28.813 回答