Прежде всего, выборка Core Data происходит синхронно.Нет необходимости в обработчике завершения.
В основном запрос на выборку отсутствует.И вместо возврата ошибки или необязательной передачи ошибки вызывающей стороне.Если записи не найдены, массив пуст.А параметр searchText
вообще не используется.
func fetchAllExpenses(pageNo: Int) throws -> [Expense] {
let fetchRequest : NSFetchRequest<Expense> = Expense.fetchRequest()
// filter the id descending order
let idDescriptor = NSSortDescriptor(key: "exp_id", ascending: false)
// set the fetch limt data
fetchRequest.fetchLimit = 5
// sort the data by descending order
fetchRequest.sortDescriptors = [idDescriptor]
// need to update every time because can not predicate how many rows before fetched
fetchRequest.fetchOffset = pageNo
return try context.fetch(fetchRequest)
}