Совсем недавно я попытался добавить новый атрибут в свою сущность CoreData, и из того, что я прочитал, я должен создать новую версию модели моего .xcdatamodeld через Редактор> Добавить версию модели. Однако, поскольку я сделал это, ни одна из данных, которые я пытаюсь сохранить, больше не сохраняет, более того, мне сказали, что новый файл .xcdatamodeld должен быть добавлен в мой проект, но этого также не произошло.
Вот весь мой код, связанный со мной CoreData от сохранения до загрузки:
Сохранение:
@IBAction func SaveContact(_ sender: Any) {
let present = ContactS(context: managedObjectContext)
if (FN?.text != "" || LN?.text != "" || Email?.text != "" || Phone?.text != "" || Lease?.text != ""){
present.name = FN?.text
present.email = Email?.text
present.coments = Comments?.text
present.phone = Phone?.text
let imgData = Picture.image?.jpegData(compressionQuality: 1)
present.image = imgData
do {
try self.managedObjectContext.save()
}catch{
print("an error has occurred")
}else{
// this part is not important as it only prompts the user to fill out all text fields
}
}
Загрузка:
var contact = [ContactS]()
func loadData(){
let contactRequest:NSFetchRequest<ContactS> = ContactS.fetchRequest()
do {
contact = try managedObjectContext.fetch(contactRequest)
self.TableView.reloadData()
}catch{
print("Error!")
}
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
self.TableView = tableView
return contact.count
}
func numberOfSections(in tableView: UITableView) -> Int {
self.TableView = tableView
return 1
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
self.TableView = tableView
let cell = tableView.dequeueReusableCell(withIdentifier: "CustomCell", for: indexPath) as! TableClass
let contacts = contact[indexPath.row]
cell.Name.text = contacts.name
cell.Picture.image = UIImage(data: contacts.image!, scale: 1)
return cell
}