iOS - ManagedObjectContext не имеет значения в быстрой CoreData - PullRequest
0 голосов
/ 13 сентября 2018

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

'+entityForName: nil is not a legal NSManagedObjectContext parameter searching for entity name 'CurrentUser''

CoreData настроен нормально. И я использую следующий код для продолжения.

func saveName(name: String) {
        let appDelegate = UIApplication.shared.delegate as! AppDelegate
        let context: NSManagedObjectContext = appDelegate.persistentContainer.viewContext

        if context ==  nil {
            print("s")
        } else {
            print("d")
        }
        let entity = NSEntityDescription.insertNewObject(forEntityName: "CurrentUser", into: context)
        entity.setValue(name, forKey: "name")

        do {
            try context.save()
            print("saved")

        } catch {
            print("error")
        }    
    }

Призвание:

saveName("Edwin")

Это код моего проекта, который до вчерашнего дня работал нормально. Интересно, что только что произошло. Внезапно он начинает показывать ту ошибку, о которой я упоминал выше.

Вещи, которые я пытался найти, проблема:

  1. Если я запускаю свой проект на симуляторе, данные сохраняются (работает нормально).
  2. Использование того же кода в другом проекте прекрасно работает как на симуляторах, так и на устройстве.
  3. Попытался удалить предыдущее приложение для сборки и запустить его снова. (тот же результат)

Вещи, которые я нашел:

  1. Контекст ManagedObject равен нулю, когда я запускаю код на устройстве, но не равен нулю, когда я запускаю его на симуляторе (таким образом, он отлично работает на симуляторе).
  2. Контекст ManagedObject равен nil, только когда я запускаю код из своего проекта (отлично работает как на симуляторе, так и на устройстве, если я запускаю код в другом проекте)

Помогите мне с этой странной проблемой.

Я использую Xcode 9.4.1 Свифт: 4.1

Заранее спасибо.

1 Ответ

0 голосов
/ 14 сентября 2018

Это самая распространенная проблема, с которой сталкиваются в CoreData. В моем случае я просто воссоздал модель данных, и она сработала. Спасибо за обсуждения в разделе комментариев.

...