Erstellen eines heute widget und ich bin mit UserDefaults(suiteName:)
einige Daten beharren. In der Hauptanwendung verwende ich UserDefaults.standard()
. Dies kann nicht durch die Erweiterung gelesen werden (oder kann es?), Weshalb ich den suiteName:
Konstruktor verwende.Teilen UserDefaults zwischen Erweiterungen
Daten, die Benutzer UserDefaults.standard()
in der Hauptanwendung bestehen muss in der Verlängerung zur Verfügung stehen.
Zu dieser Zeit ich beide persistierenden bin so dass die Werte
UserDefaults.standard().set:...forKey:...
UserDefaults(suiteName:...)().set:...forKey:...
...
Frage geteilt werden soll mir UserDefaults.standard()
alle zusammen fallen sollte und UserDefaults(suiteName:)
nur in meiner Anwendung verwenden, oder ist dies schlechte Praxis und wenn ja, Warum?
Edit: Ich verwende eine Behältergruppe App. Zur Klärung frage ich, ob ich Standard() durch suiteName ersetzen soll: während meines gesamten Projekts?
wenn Sie Ressourcen teilen zwischen der Erweiterung und der App wollen, ist der beste Weg um eine _App-Gruppe_ zu erstellen und nur den gemeinsamen 'UserDefault' (nach' -SuiteName: ') oder den Standard' FileManager' (nach '-forSecurityApplicationGroupIdentifier:') zu verwenden - Sie benötigen möglicherweise nicht die Standard-Benutzervorgaben oder den Datei-Manager länger (Wenn Sie jedoch sichergehen möchten, dass Sie Daten von der Erweiterung isolieren möchten, können Sie diese Sandboxen weiterhin verwenden). – holex
Danke das half – RyanTCB