2016-12-21 5 views
0

Я использую git с Xcode 8.1 и работаю над Core Data в Objective-C на нескольких ветвях, каждый из которых наследуется от общей ветви мастера, на которой было создано MyProject.xcdatamodeld.Проблема с основными данными при переключении между ветвями (NSInternalConsistencyException)

Ошибка, которую я получаю при выполнении тестов: caught "NSInternalConsistencyException", "+entityForName: could not locate an entity named 'MyManagedObject' in this model.", который возникает при вызове -[NSEntityDescription insertNewObjectForEntityForName:inManagedObjectContext:] и где MyManagedObject является простым подклассом NSManagedObject.

Эта ошибка возникает после переключения между ветвями, хотя, казалось бы, не последовательно, поскольку иногда мои тесты запускаются без ошибок. Я убедился, что мой managed object context is not nil и попробовал очистить мой проект, очистить мою папку сборки и удалить папку Derived Data, но безуспешно. Я вспомнил, что удалял приложение из симулятора между сборками (поскольку каждая ветка использует другую модель Core Data), и я проверил все мои варианты написания и не нашел никаких опечаток.

Пожалуйста, дайте мне знать, какую другую информацию я могу предоставить, чтобы помочь отладить!

ответ

0

Так вот мой причудливое решение, которое работает:

  • Clean (Shift-Cmd-K) и Clean Folder Сложение ... (Alt-Shift-Cmd-K).
  • Добавить .xcdatamodeld для компиляции фаз.
  • Построение для тестирования (Shift-Cmd-U). - n.b. Сбой сборки
  • Удалить .xcdatamodeld с этапа компиляции.
  • Удалить приложение из Simulator. - если схема основных данных изменилась

Я понятия не имею, почему это работает, тем более, что ничего не кажется, изменения в файле .xcodeproj/project.pbxproj.

 Смежные вопросы

  • Нет связанных вопросов^_^