2016-02-24 4 views
0

Я пытаюсь получить UserDefaults из ServiceProvider - класса расширения верхнего полка и получить нуль.NSUserdefaults from TVTopShelfProvider соответствует классу: get nil

class ServiceProvider: NSObject, TVTopShelfProvider { 
.... 

    var topShelfItems: [TVContentItem] { 
    .... 
    item!.title = String(NSUserDefaults.standardUserDefaults().objectForKey("title")) 

В то же время, когда AppDelegate запускается, я могу получить значение. Есть ли другой способ сохранить данные, связанные с пользователем, а затем получить эти данные с ServiceProvider?

ответ

1

В расширениях iOS и tvOS работают в своем собственном процессе/песочнице и не имеют доступа к данным приложения или другим расширениям. Решением этого является настройка группы приложений для расширения и приложения, которая позволяет вам получить доступ к совместно используемому контейнеру в файловой системе на устройстве (включая общий экземпляр NSUserDefaults). Подробнее об этом можно узнать в разделе Sharing Data with Your Containing App главы Handling Common Scenarios в разделе App Extension Programming Guide.