Как организовать модель и методы Core Data? - PullRequest
0 голосов
/ 29 ноября 2018

Я новичок в Core Data, и я хотел бы организовать / создать архитектуру.

У меня есть объект с именем Order, для которого я создаю таблицу для него в xcdatamodel.

У меня также естьTableView, который показывает мне все заказы.

Проблема в том, что иногда мне нужно определенное поле из всех заказов, например, более новая дата их всех.

Итак, у меня есть расширение заказачто импортирует CoreData:

import CoreData

extension Order: NSFetchedResultsControllerDelegate {

    func getNewerDateOrders(condition: [String]) -> [Order]? {
        //I do fetch on all orders something like:
        let fetchRequest: NSFetchRequest<Order> = Order.fetchRequest()
        let sortDescriptor = NSSortDescriptor(key: "dateOrder", ascending: false)
        fetchRequest.sortDescriptors = [sortDescriptor]

        //etc etc (big logic to get the specific date)

        return fetchedResultController?.fetchedObjects
    }
}

Проблема в том, что когда я хочу получить эту конкретную дату на своем OrderViewController, я пытаюсь сделать let orderDAO = Order(), но я получаю эту ошибку:

error: CoreData: error: Failed to call designated initializer on NSManagedObject class 'Pedido'
CoreData: error: CoreData: error: Failed to call designated initializer on NSManagedObject class 'Pedido'

Я могу понять, что это означает, что я не могу создать экземпляр моего NSManagedObject в моем ViewController.Так как я могу это сделать?Ранее я помещал этот метод (getNewerDateOrders) в ViewController, но он становился все более запутанным.Я хотел бы отделить его в нужном месте.

Может кто-нибудь помочь мне, пожалуйста?

...