CloudKit CK Список литературы

Так что у меня есть запись, которая содержит поле, которое является списком CKReference.

Теперь я хотел бы получить все (по этому списку CKReferences) записи (из другого типа) в пакетном режиме.

Есть идеи?

1 ответ

Решение

Допустим, у вас есть запись "Компания", и у них есть поле CKReference List с именем "Сотрудники".

Сделать выборку для Компании легко, но как только у вас есть companyRecord, теперь вы хотите получить ее сотрудников. Вы можете сделать это так:

//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)
Другие вопросы по тегам