Ответ 1
Я бы порекомендовал здесь пошагово копать.
Во-первых, убедитесь, что как основное приложение, так и расширение виджета включены в группу приложений и используют одно и то же и активируются (флажок должен быть установлен) имя группы приложений:
Сегодня расширение виджета:
Затем выполните простой тест с прямым доступом/получить доступ. В основном приложении AppDelegate.didFinishLaunchingWithOptions
(измените имя группы приложений и ключи на свои нужды):
if let userDefaults = UserDefaults(suiteName: "group.de.zisoft.GPS-Track") {
userDefaults.set("test 1" as AnyObject, forKey: "key1")
userDefaults.set("test 2" as AnyObject, forKey: "key2")
userDefaults.synchronize()
}
В окне просмотра текущего виджетов ViewController:
if let userDefaults = UserDefaults(suiteName: "group.de.zisoft.GPS-Track") {
let value1 = userDefaults.string(forKey: "key1")
let value2 = userDefaults.string(forKey: "key2")
...
}
Если это работает, проблема должна быть связана с вашим Preferences
singleton.