CoreData: warning: Невозможно загрузить класс с именем "WEEReadings" для данных "Чтения". Класс не найден, вместо этого используется NSManagedObject по умолчанию - программирование

CoreData: warning: Невозможно загрузить класс с именем "WEEReadings" для данных "Чтения". Класс не найден, вместо этого используется NSManagedObject по умолчанию

ОК, это время для помощи сообщества после нескольких часов и часов поиска.

У меня есть статическая библиотека и я использую эту удивительную script Я создаю свою статическую структуру, которая включает универсальную статическую библиотеку, также я создаю включая ReadingsCoreDataModel.momd, который включает ReadingsCoreDataModel.mom. Все хорошо, я предоставляю их своему клиентскому iOS-приложению, все правильно строит и запускает приложение, перекошенное в мою фреймворк, и используя пакет, у меня есть класс singleton WEEDataStore в моей статической библиотеке, используемой другим классом с именем Worker, checked, NSManagedObjectModel не nil и выглядит правильно загруженным, NSPersistentStoreCoordinator не равен нулю, NSManagedObjectContext не равен нулю.

В WEEDataStore у меня есть метод сохранения, который я вызываю из класса Worker в моей статической библиотеке.

В моем ReadingsCoreDataModel.momd я создал объект с именами и классами WEEReadings.

Я делаю следующее в классе Worker

WEEReadings* readingsEntity = [NSEntityDescription insertNewObjectForEntityForName:@"Readings" inManagedObjectContext:[[WEEDataStore sharedInstance] managedContext]];
[readingsEntity appendWithReadingsModel:self.readingsModel];
[[WEEDataStore sharedInstance] save];

В результате получится следующая ошибка

CoreData: warning: Unable to load class named 'WEEReadings' for entity 'Readings'.  Class not found, using default NSManagedObject instead.
2014-12-13 20:11:30.080 TestClient[6854:2487108] -[NSManagedObject appendWithReadingsModel:]: unrecognized selector sent to instance 0x1700ccda0
2014-12-13 20:11:30.084 TestClient[6854:2487108] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSManagedObject appendWithReadingsModel:]: unrecognized selector sent to instance 0x1700ccda0'

Я почти прочитал все подобные ошибки, большинство проблем с ошибками Swift или typo с моделью, другие, предлагающие иметь такое же название модели, как имя приложения, я не думаю, что смогу это сделать или это связано к ошибке.

Все мои заголовки внутри моей статической библиотеки - это Project, за исключением тех, которые отображаются клиентом, которые добавляются как Public. Также пытались добавить их все как общедоступные, но это не имело никакого значения.

Все операции с основными данными являются внутренними.

Кажется, что модель Core Data загружена правильно, но не может найти мой класс, который определенно включен в статическую библиотеку, включенную в структуру.

Любые идеи, прежде чем я зарегистрируюсь в сумасшедшем доме?

4b9b3361

Ответ 1

Добавить -ObjC флаг компоновщика в проект, чтобы заставить компоновщик загружать все классы из вашей библиотеки.