Расширение iOS Today - делитесь основными данными между

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

CoreData: предупреждение: невозможно загрузить класс с именем «Med_Track_2.Medicine» для объекта «Medicine»

Med_Track_2 - это название продукта для основного приложения, Medicine_Tracker_2 - это имя для расширения. Класс лекарства добавляется к обеим целям.

Это можно обойти?


person Ceri Turner    schedule 18.09.2014    source источник


Ответы (1)


Вы должны разделить ресурсы между вашим приложением и расширением. Прочтите главу «Совместное использование данных с вашим приложением»: https://developer.apple.com/library/ios/documentation/General/Conceptual/ExtensibilityPG/ExtensionScenarios.html#//apple_ref/doc/uid/TP40014214-CH21-SW1

Также вам нужно добавить файлы, которые вы хотите использовать, в цель расширения. (Отредактируйте разделы Build phase / Compile Sources целевого объекта расширения)

person Dávid Kaszás    schedule 18.09.2014
comment
Хорошо, так что это говорит об использовании фреймворка, но даже с фреймворком я получаю ошибку неспособности загрузить класс - person Ceri Turner; 18.09.2014
comment
Вы редактировали цель расширений для связи с этой структурой? - person Dávid Kaszás; 18.09.2014
comment
да, и расширение, и основное приложение связаны, основное приложение работает, а расширение - нет. - person Ceri Turner; 18.09.2014
comment
изменение имени класса на проект расширений приводит к тому, что расширение работает (хотя данные не отображаются), но основное приложение вызывает ошибки - person Ceri Turner; 18.09.2014
comment
и при использовании его из расширения данные не отображаются, а контроллер fetchedresults не имеет возвращенных объектов - person Ceri Turner; 18.09.2014
comment
Вы тоже построили фреймворк для arm64? Вы установили группы приложений, как описано в приведенной выше ссылке? - person Dávid Kaszás; 18.09.2014
comment
Я думаю, вам нужно прочитать все руководство по расширениям приложений, прежде чем продолжить, чтобы понять всю концепцию, возможно, посмотреть последние видеоролики WWDC о расширениях. - person Dávid Kaszás; 18.09.2014
comment
Давайте продолжим это обсуждение в чате. - person Ceri Turner; 18.09.2014
comment
хорошо, у меня уже была эта ошибка, но я получаю сообщение об ошибке при попытке создать объект, код let instance = Singleton.sharedInstance NSLog (MOC:% @, instance.moc) var med: Medicine = NSEntityDescription.insertNewObjectForEntityForName (Medicine, inManagedObjectContext: instance.moc) как Medicine, но его сбой с выходом консоли exc_breakpoint exc_arm_breakpoint - 18.09.2014 16: 38: 55.974 Med Track 2 [8103: 140340] MOC: ‹NSManagedObjectContext: 0x16d78240› так что я знаю управляемый контекст объекта в порядке - person Ceri Turner; 18.09.2014