Не удалось найти место, куда вы загружаете свои вещи из БД. У вас есть var itemName : [NSManagedObject] = []
в ViewController, но нет такого места, где вы можете установить какое-либо значение для этой переменной. Вот почему у вас нет ячейки для отображения - когда представление коллекции запрашивает контроллер представления о количестве элементов в разделе, оно всегда возвращает 0 (опять же, потому что вы никогда не устанавливали значение itemName
, поэтому оно пустое).
Upd: Для загрузки данных вы можете сделать следующее.
В соответствии с проектом вы можете создать метод загрузки данных в вашем ViewController
с помощью кода, подобного следующему:
func loadData() {
guard let appDelegate = UIApplication.shared.delegate as? AppDelegate else { return }
let managedContext = appDelegate.persistentContainer.viewContext
let fetch = NSFetchRequest<Item>(entityName: "Item")
do {
self.itemName = try managedContext.fetch(fetch)
}
catch {
print("Could not load. \(error)")
}
}
И затем вы должны вызвать этот новый func loadData()
в viewDidLoad
ViewController сразу после строки super.viewDidLoad()
.