Kürzlich habe ich eine einfache iOS 8-Freigabeerweiterung erstellt, um zu verstehen, wie das System funktioniert. Wie Apple in seiner App Extension Programming Guide angibt:Freigeben von Daten zwischen einer iOS 8-Freigabeerweiterung und einer Haupt-App
Standardmäßig haben Ihre enthaltende App und seine Erweiterungen keinen direkten Zugriff auf die jeweils anderen Container.
Das bedeutet, dass die Erweiterung und die enthaltende App keine Daten gemeinsam nutzen. Aber auf der gleichen Seite bringt Apple eine Lösung:
Wenn Sie möchten, dass Ihre enthaltende App und ihre Erweiterungen Daten gemeinsam nutzen können, verwenden Sie Xcode oder das Entwicklerportal, um App-Gruppen für die App und ihre Erweiterungen zu aktivieren. Als Nächstes registrieren Sie die App-Gruppe im Portal und geben Sie die App-Gruppe an, die in der enthaltenen App verwendet werden soll.
Dann wird es möglich NSUserDefaults zu verwenden, um Daten zwischen der enthaltenden App und der Erweiterung zu teilen. Genau das möchte ich tun. Aber aus irgendeinem Grund funktioniert es nicht.
In der gleichen Seite, Apple die Standardvorgaben schlägt vor:
var defaults = NSUserDefaults.standardUserDefaults()
In einer WWDC Präsentation (217), schlagen sie vor, ein gemeinsames Paket:
var defaults = NSUserDefaults(suiteName: kDefaultsPackage)
Auch aktivierte ich App-Gruppen für Sowohl das Ziel der enthaltenden App als auch das Ziel der Erweiterung mit demselben Namen der App-Gruppe:
Aber all diese Einstellungen sind umsonst. Ich kann die Daten, die ich in der enthaltenen App gespeichert habe, nicht von der Erweiterung abrufen. Es ist so, als würden zwei Ziele völlig unterschiedliche NSUserDefaults-Speicher verwenden.
So
- Gibt es eine Lösung für dieses Verfahren?
- Wie kann ich einfache Daten zwischen der enthaltenden App und der Freigabeerweiterung freigeben? Die Daten sind nur Benutzeranmeldeinformationen für eine API.
möglich Duplikat [Kommunikation zwischen Anwendungen mit App Groups] (http://stackoverflow.com/questions/24015506/communicating-between-apps-with-app-groups) – GuramK
Dies kann Ihnen helfen: http://stackoverflow.com/q/24015506/1586692 Aber ich habe immer noch Probleme wie folgt aus: http://stackoverflow.com/q/24067975/1586692 – heheBear