2015-03-16 13 views
0

Я использую Pocket API и аутентификацию пользователя в приложении.Доля пользовательского объекта между App и App Extension в iOS8

Во время расширения я хочу использовать зарегистрированного пользователя для запуска методов для вызова различных конечных точек. Единственный вариант совместного использования данных между приложением и его расширением - NSUserDefaults, как я вижу в разных потоках, но NSUserDefaults не может сохранить NSObjects зарегистрированного пользователя.

Как я могу использовать зарегистрированного пользователя в расширении?

Я входе пользователя, как это в приложение ..

[[PocketAPI sharedAPI] loginWithHandler: ^(PocketAPI *API, NSError  *error){ 
    if (error != nil) 
    { 
      NSlog (@"User Logged In"); 
    } 
}]; 
} 

в удлинителе я хочу использовать:

[[PocketAPI sharedAPI] saveURL:url handler: ^(PocketAPI *API, NSURL *URL, 
               NSError *error){ 
    if(error){ 
     NSLog(@"There was an error in saving the URL : %@ ", [error description]); 


    }else{ 
     NSLog(@"URL was saved successfully "); 

    } 
}]; 

как я динамически сохранить [PocketAPI sharedAPI], чтобы использовать любой метод с обеих сторон? Как я могу использовать один и тот же экземпляр объекта

ответ

0

Для сохранения учетных данных пользователя лучше хранить в Keychain, он более безопасен, и вы также можете получить доступ также в расширении.

  1. Вы можете поделиться брелка с помощью kSecAttrAccessGroupApple doc объясню.
  2. Другим вариантом является совместное использование основных данных или файла sqlite в совместно используемом контейнере. Я сделал образец объяснения в My Blog on Document Provider, который объяснит обмен данными между приложением и расширением.