Compartilhando dados entre uma extensão de compartilhamento do iOS 8 e o aplicativo principal
Recentemente, fiz uma extensão simples de compartilhamento do iOS 8 para entender como o sistema funciona. Como a Apple afirma em suaGuia de programação de extensão de aplicativo:
Por padrão, seu aplicativo que contém e suas extensões não têm acesso direto aos contêineres um do outro.
O que significa que a extensão e o aplicativo que contém não compartilham dados. Mas na mesma página a Apple traz uma solução:
Se você deseja que seu aplicativo que contém e suas extensões possam compartilhar dados, use o Xcode ou o portal do desenvolvedor para ativar grupos de aplicativos para o aplicativo e suas extensões. Em seguida, registre o grupo de aplicativos no portal e especifique o grupo de aplicativos a ser usado no aplicativo que o contém.
Em seguida, torna-se possível usar o NSUserDefaults para compartilhar dados entre o aplicativo que contém e a extensão. É exatamente isso que eu gostaria de fazer. Mas, por alguma razão, isso não funciona.
Na mesma página, a Apple sugere os padrões padrão:
var defaults = NSUserDefaults.standardUserDefaults()
Em uma apresentação da WWDC (217), eles sugerem um pacote comum:
var defaults = NSUserDefaults(suiteName: kDefaultsPackage)
Além disso, ativei Grupos de aplicativos para o destino do aplicativo que contém e o destino da extensão, com o mesmo nome do grupo de aplicativos:
Mas toda essa configuração é para nada. Não consigo recuperar os dados que armazenei no aplicativo que contém a extensão. É como se dois destinos estivessem usando armazenamentos NSUserDefaults completamente diferentes.
Assim,
Existe uma solução para este método?Como posso compartilhar dados simples entre o aplicativo que contém e a extensão de compartilhamento? Os dados são apenas credenciais do usuário para uma API.