Ich habe ein Problem mit NSUserDefaults(suiteName: "group.app-ID")
.
Ich versuche, eine zu retten NSArray
in die NSUserDefaults
im Container Anwendung in viewDidLoad()
.
var defaults: NSUserDefaults = NSUserDefaults(suiteName: "group.app-ID")
defaults.setObject(["One", "Two"], forKey: "bookmarks")
defaults.synchronize()
In meiner TodayExtension versuche ich das Array so zu bekommen:
Globale Defenition in Extension ViewController:
var defaults: NSUserDefaults = NSUserDefaults(suiteName: "group.app-ID")
var defaultsArray: NSArray!
Im viewDidLoad()
defaultsArray = defaults.objectForKey("bookmarks") as NSArray
Aber defaultsArray
ist immer nil
.
Die App-Gruppenberechtigung wurde zu allen Zielen hinzugefügt.
Antworten:
5 für die Antwort № 1Dies hat nichts mit Ihrer Suite zu tun, sondern mit der Tatsache, dass Sie versuchen, ein schnelles Array als NSObject zu speichern. Folgendes funktioniert in Playground und zeigt, wie das geht:
let defaults = NSUserDefaults()
defaults.setObject(["One", "Two"] as NSArray, forKey: "array")
let myArray = defaults.objectForKey("array") as [String] // ["One", "Two"]
Sie können aber auch ein Swift-Array speichern. Sie müssen jedoch einen anderen Accessor verwenden.
defaults.setObject(["One", "Two"], forKey: "array")
let myArray = defaults.arrayForKey("array") as [String] // ["One", "Two"]