Я думаю, что вопрос заключается в том, как получить сумму для каждой категории, Доход, Расход и т. Д. c. Если это так, то вот как это делается с помощью функции .sum для результатов.
let totalIncome = realm.objects(AccountClass.self)
.filter("entryType == 'Income'")
.sum(ofProperty: "amount") as Int
let totalExpense = realm.objects(AccountClass.self)
.filter("entryType == 'Expense'")
.sum(ofProperty: "amount") as Int
print("Total Income: \(totalIncome)")
print("Total Expense: \(totalExpense)")
и вывод для данных вашего примера будет
Total Income: 40000
Total Expense: 1498
Если вам нужна сводная таблица, вы можно просто добавить суммы в массив - если вам нужны метки, используйте кортеж для хранения их в массиве, подобном этому
let i = ("Income", totalIncome)
let e = ("Expense", totalExpense)
let tupleArray = [i, e]
for account in tupleArray {
print(account.0, account.1)
}
Имейте в виду, что объект Results не является массивом, но имеет некоторый массив -подобные функции. Результаты обновляются в реальном времени, поэтому базовые данные в области изменяются, а результаты изменяются вместе с ними.