Итак, я просматривал и следил за всеми шагами, чтобы правильно настроить общие UserDefaults, но я должен что-то пропустить.
У меня есть возможности групп приложений, которые активируются как для моего приложения, так и для моего расширения. Оба используют одно и то же имя пакета ("group.TestSharedPreferences"
), и я пишу следующим образом:
struct Preferences {
static let shared = UserDefaults(suiteName: "group.TestSharedPreferences")!
}
В viewDidLoad
:
Preferences.shared.set(1, forKey: "INT")
И читать:
Preferences.shared.integer(forKey: "INT") // Returns 1 in Container App
Preferences.shared.integer(forKey: "INT") // Returns 0 in Today Extension
Даже используя synchronize()
сразу после установки "INT"
, значение, полученное в расширении, не является тем, которое было сохранено в приложении-контейнере. Любые идеи о том, что я могу потерять? Спасибо!