Ich entschuldige mich für mein Niveau der Englisch.
Um Daten zwischen apphost und Widget zu teilen, sollten Sie Ihre userDefault
Daten es so, zum Beispiel in einer statischen Klasse sparen:
class UserDefaultDataHelper: NSObject {
static func saveKeyToGroupApp(_ value: AnyObject?, withKey key:String) -> Void {
UserDefaults(suiteName: "group.com.test")!.set(value, forKey: key)
UserDefaults(suiteName: "group.com.test")!.synchronize()
}
//and to read values
static func loadKeyToGroupApp(_ key:String) -> AnyObject? {
if let loadedValue = UserDefaults(suiteName: "group.com.test")?.object(forKey: key){
return loadedValue as AnyObject?
}
return nil
}
}
und zu verwenden:
let ledcontrollerdata = UserDefaultDataHelper.loadKeyToGroupApp("ledControllers")
UserDefaultDataHelper.saveKey(yourData as AnyObject?, withKey: "ledControllers")
Nur speichern Sie Ihre Daten wie diese sollten Sie die gleichen Daten von mehreren Apps, Widget, etc. teilen, ABER nur wenn diese in einer "App-Gruppe" mit einer Bundle-ID-Gruppe sind. Sie sollten diese Bündel-ID-Gruppe in group.com.test
verwenden und beide Projekte sollten ihre jeweiligen Berechtigungen haben und beide Ziele in Capabilities -> AppGroups konfigurieren, wählen Sie Ihre AppGroupDomain.
Ja Kumpel, es funktionierte für mich auf diese Weise, aber das Einrichten der App-Gruppen in den Developer-Konten in so ziemlich benötigt. –