Ни одна NSEntityDescription ни в одной модели не претендует на подкласс NSManagedObject «PriorityList.Entry», поэтому + сущность перепутана - PullRequest
0 голосов
/ 14 февраля 2020

Я новичок в CoreData и пытаюсь сохранить запись списка задач. Когда я пытаюсь создать новую запись, она взломает sh. Мое имя объекта - «Entry», я выбрал «Extension» для codegen, но я не добавил ни одного кода в подкласс Entry. что здесь пошло не так? Спасибо за помощь!

    let container: NSPersistentContainer? = (UIApplication.shared.delegate as? AppDelegate)?.persistentContainer

func editOrAdd()
{
    if entry?.title != nil {
        ifNew = false   //edit entry
        updateUI()
    } else {
        ifNew = true    //new entry
        print(ifNew)

        if let context = container?.viewContext {
            let newEntry = Entry(context: context)  //crashed here
            newEntry.creatTime = Date()
            try? context.save()
            //test
            print("new entry creatTime: \(formatter((entry?.creatTime!)!))")
        }
    }
}

полный журнал ниже

2020-02-14 23: 06: 43.471370 + 0800 PriorityList [8876: 698237] [ошибка]: ошибка: Ни одна NSEntityDescription ни в одной модели не претендует на подкласс NSManagedObject «PriorityList.Entry», поэтому сущность + перепутана. Вы уже загрузили NSManagedObjectModel?

2020-02-14 23: 06: 43.475084 + 0800 PriorityList [8876: 698237] *** Завершение работы приложения из-за невыполненного исключения «NSInvalidArgumentException», причина: «NSManagedObject of Класс «PriorityList.Entry» должен иметь действительное описание NSEntityDescription.

1010 *

1 Ответ

0 голосов
/ 15 февраля 2020

после просмотра дополнительных руководств и полной перестройки всего моего проекта, проблема решена.

я изменил синтаксис

let newEntry = Entry(context: context)  //crashed here

на

let newItem = NSEntityDescription.insertNewObject(forEntityName: "Item", into: context) as! Item

не уверен, что проблемы, но это сработало.

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