Это, вероятно, наиболее легко сделать, используя значение ключа кодирования «сборщики» (см. here), а не выборки. Для каждого person
:
let name = person.name
let totalIncome = person.valueForKeyPath("[email protected]")
let totalLoans = person.valueForKeyPath("[email protected]")
Если производительность является проблемой, вы можете улучшить положение вещей путем внесения запроса выборки (для объектов Person) на «предварительную загрузку» соответствующие Salary
и Bills
объектов:
fetchRequest.relationshipKeyPathsForPrefetching = ["salary", "loans"]
В качестве альтернативы, можно получить требуемую информацию в одной выборке, хотя я не рекомендую ее, потому что она требует изменения fetchRequest для возврата массива словарей, а не массива NSManagedObjects
. Это затрудняет последующую обработку (например, заполнение таблицы).
// Define NSExpression and NSExpressionDescription for the total income
let incomeED = NSExpressionDescription()
incomeED.expression = NSExpression(forKeyPath: "[email protected]")
incomeED.name = "totalIncome"
incomeED.expressionResultType = .Integer64AttributeType
// Define NSExpression and NSExpressionDescription for the total amount
let amtED = NSExpressionDescription()
amtED.expression = NSExpression(forKeyPath: "[email protected]")
amtED.name = "totalLoans"
amtED.expressionResultType = .Integer64AttributeType
// specify attributes and expressions to fetch
fetchRequest.propertiesToFetch = ["name", incomeED, amtED]
// specify dictionary return type (required to process NSExpressions)
fetchRequest.resultType = .DictionaryResultType
Результатом выборки будет массив словарей; каждый словарь будет иметь ключи «имя», «totalIncome» и «totalLoans» (с соответствующими значениями).
Добро пожаловать в SO, пожалуйста, будьте более конкретными, задавая вопрос: что вы пробовали, чего вы ожидаете и т. Д. См. [Как спросить] (http://stackoverflow.com/help/how-to- ask) – Nehal
Спасибо :) Я не знаю, как я могу быть более конкретным. Im, перечисляющий базу данных с атрибутами и отношениями, показывающий результаты, которые я им даю, язык и тегирование со связанными словами :) –