2015-08-10 6 views
0

У меня есть приложение с ios 8, swift и CoreData. все работает отлично :)Запросить данные из CoreData в Today Extension

сейчас я хотел бы добавить сегодня extion - это мой первый раз, чтобы работать с сегодняшними вымираниями. Я очень горжусь тем, что уже могу установить в своем приложении значение NSUserdafault и показать его на моем сегодняшнем расширении :)

, но сейчас я хотел бы сделать шаг вперед. в моем приложении У меня есть CoreData Entiny LM_ITEMS с атрибутом "Hersteller"

Как я могу перечислить все данные LM_ITEMS в моем сегодняшнем расширении? Спасибо :)

в моем приложении я это сделать, как таким образом:

let managedObjectContext = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext 
var LM = [LM_ITEMS]() 

func DatenAbrufen() { 
    let fetchRequest = NSFetchRequest(entityName: "LM_ITEMS") 
    if let fetchResults = managedObjectContext!.executeFetchRequest(fetchRequest, error: nil) as? [LM_ITEMS] { 
     LM = fetchResults 
    } 
} 

Но этот не работает в расширении сегодня ...

ответ

0

Вы должны лучше создать базовый стек данных объекта одноплодной и включать его в оба целевых объекта, цель вашего приложения и цель распространения.

+0

мое приложение и виджет используют ту же группу приложений в целевых возможностях. как я могу поместить основные данные в общий контейнер. где я могу найти этот контейнер. и что такое одноэлементный объект стека данных ядра и почему я должен его использовать? – Ghost108

+0

Чтобы получить доступ к совместно используемому контейнеру и создать там базу данных, вам необходимо использовать метод NSFileManager 'containerURLForSecurityApplicationGroupIdentifier'. Об объекте singleton я рекомендую, потому что таким образом вы можете повторно использовать объект, и вы можете использовать его в целевом приложении, а также в цели расширения. –

+0

ok thx. существует ли простой пример кода для объекта singleton? – Ghost108

0

То, что сказал @Lucian, является правильным и может стать очень полезным, если вы хотите добавить другие цели.

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

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