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%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%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%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 .
Tags und Links ios nsuserdefaults ios8 widget ios-app-extension