Daten auf Heute-Erweiterungen speichern und laden (iOS 8)

8

Ist es möglich, Daten auf Today Extension mit NSUserDefaults zu speichern und zu laden? Nach dem Schließen der Benachrichtigungszentrale verhält sich das Widget wie eine App, die beendet wird, sodass alle Daten verloren gehen. Wie kann ich dieses Problem lösen?

Das ist mein Code:

%Vor%     
Massimo Piazza 05.06.2014, 15:51
quelle

5 Antworten

19

Sie müssen die App-Gruppen-ID anstelle von com verwenden. * Zum Beispiel:

%Vor%

Vergessen Sie nicht zu synchronisieren, wenn Sie Daten speichern

%Vor%     
BenjG37 07.06.2014, 21:08
quelle
2

Sie müssen den App-Gruppen-Artikel detailliert hinzufügen hier und dann, wenn es tatsächlich funktioniert hat (ziemlich unsicher unter Beta), sollte es Ihnen erlauben, NSUserDefault-Daten wie normal zwischen dem Host und dem Widget zu teilen.

Bearbeiten: Normal NSUserDefaults funktioniert nicht . Apple hat eine neue Methode implementiert. Um es zu verwenden, definieren Sie einfach Ihre NSUserDefaults-Instanz wie folgt neu:

%Vor%     
Sirens 05.06.2014 22:43
quelle
2

Für jeden, der sich fragt, wie in der Welt Sie Werte speichern und erhalten, schauen Sie sich diesen Code an.

Fügen Sie diese in Ihrer regulären App hinzu, um in Ihrer * .m-Datei zu speichern, was Sie möchten.

%Vor%

Fügen Sie dies in Ihrem heutigen Widget unter TodayViewController.m in viewDidLoad hinzu.

%Vor%     
Sam B 28.12.2014 21:29
quelle
1

Sie müssen zuerst die App-Gruppen für beide Ziele einrichten (Anwendung und die Erweiterung).

Verwenden Sie dann das

%Vor%

, um das Standardobjekt zu erhalten, das Sie wie gewohnt lesen / schreiben können.

Wenn Sie über Änderungen an den Standardeinstellungen benachrichtigt werden möchten, verwenden Sie NSUserDefaultsDidChangeNotification in Ihrem Widget (oder Ihrer App).

Für ein Schritt-für-Schritt-Tutorial, das all das erklärt, schaut euch das an Blogpost .

    
Lukas Petr 29.06.2014 08:40
quelle
-2

@edukulele Die Extension- und Main-App läuft heute auf zwei Prozessen. Heute kann die Erweiterung NSUserDefaultsDidChangeNotifications nicht empfangen. Ich habe versucht, MMWormhole zu verwenden. Es ist sehr gut.

    
minus_one 22.06.2016 11:43
quelle