Доступ к значениям атрибута сущности, извлеченным из CoreData

У меня возникла проблема при попытке доступа к данным в полученных результатах из CoreData, Данные представлены в UITableViewи это отображается нормально, я пытаюсь реализовать опцию для фильтрации данных на основе атрибута. Это также хорошо работает через NSCompoundPredicate,

Запрос на выборку проходит нормально, однако у меня возникают проблемы при попытке извлечь значения из одного из атрибутов выбранной сущности, чтобы сложить их, чтобы представить общую стоимость.

Код для получения отфильтрованных результатов:

func attemptFilteredFetch(filter: Array<NSPredicate>) 
{
    let filterCriteria: NSCompoundPredicate = NSCompoundPredicate(andPredicateWithSubpredicates: filter)
    let fetchRequest: NSFetchRequest<StoredExpense> = StoredExpense.fetchRequest()
    let dateSort = NSSortDescriptor(key: "dateOfExpense", ascending: false)
    fetchRequest.sortDescriptors = [dateSort]
    fetchRequest.predicate = filterCriteria

    let controller = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext: context, sectionNameKeyPath: nil, cacheName: nil)
    controller.delegate = self
    self.controller = controller

    do
    {            
        try controller.performFetch()            
    } 
    catch 
    {
        let error = error as NSError
        print("\(error)")
    } 
    expenseList.reloadData()
}

До сих пор я попробовал метод, который я нашел здесь, и похожие, найденные в Интернете, однако приложение вылетает, когда attemptFilteredFetch() функция называется.

Я мог бы пойти по этому поводу неправильно, но я ожидаю, что я могу добавить запрос на выборку в массив и выполнить итерацию по нему, чтобы получить общее значение.

Есть ли способ лучше? Или есть какой-нибудь способ получить доступ к значению атрибута на лету?

1 ответ

Решение

Проблема возникла из-за наследования модели от более старой версии Xcode. AFAIK в бета-версиях Чтобы иметь возможность использовать CoreData NSManagedObject, подклассы должны были быть созданы вручную. Так как теперь это кажется избыточным в финальной версии Xcode, созданная вручную модель выдает случайные ошибки. Удаление и очистка кода решили проблемы, которые у меня были.

Другие вопросы по тегам