CloudKit CK参考列表
CloudKit CKReference List
所以我有一个包含 CKReference 列表字段的记录。
现在我想批量获取所有引用的(通过这个 CKReferences 列表)记录(从另一种类型)。
有什么想法吗?
假设您有一条记录 "Company" 并且他们有一个名为 "Employees".
的 CKReference List 字段
获取 Company 很容易,但是一旦您有了 companyRecord,您现在就想获取它的 Employees。你可以这样做:
//first you need to create an array of employee record IDs
var employeeRecordIds = [CKRecordID]()
for employeeReference in companyRecord["Employees"] as! [CKReference] {
employeeRecordIds.append(employeeReference.recordID)
}
//now you can fetch those employees
var fetchOperation = CKFetchRecordsOperation(recordIDs: employeeRecordIds)
fetchOperation.fetchRecordsCompletionBlock = {
records, error in
if error != nil {
print("\(error!)")
} else {
for (recordId, record) in records {
print("\(record)")
}
}
}
CKContainer.defaultContainer().publicCloudDatabase.addOperation(fetchOperation)
所以我有一个包含 CKReference 列表字段的记录。
现在我想批量获取所有引用的(通过这个 CKReferences 列表)记录(从另一种类型)。
有什么想法吗?
假设您有一条记录 "Company" 并且他们有一个名为 "Employees".
的 CKReference List 字段获取 Company 很容易,但是一旦您有了 companyRecord,您现在就想获取它的 Employees。你可以这样做:
//first you need to create an array of employee record IDs
var employeeRecordIds = [CKRecordID]()
for employeeReference in companyRecord["Employees"] as! [CKReference] {
employeeRecordIds.append(employeeReference.recordID)
}
//now you can fetch those employees
var fetchOperation = CKFetchRecordsOperation(recordIDs: employeeRecordIds)
fetchOperation.fetchRecordsCompletionBlock = {
records, error in
if error != nil {
print("\(error!)")
} else {
for (recordId, record) in records {
print("\(record)")
}
}
}
CKContainer.defaultContainer().publicCloudDatabase.addOperation(fetchOperation)