Я новичок в 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, но он становился все более запутанным.Я хотел бы отделить его в нужном месте.
Может кто-нибудь помочь мне, пожалуйста?