実行環境
Swift | 5.6.1 |
Xcode | 14.0 |
macOS | 12.6 |
内容
App Groupsの追加
メインのAppとWidgetの両方に、同じ名前のApp Groupsを追加します。
参考に、AppGroupsのリファレスを載せておきます。
https://developer.apple.com/documentation/xcode/configuring-app-groups
あとはコードを書くだけ
userdefaultsでセットするときや、取り出すときに、
下の2行目に該当するコードを記述するだけです。
これで、WidgetでもAppでも両方から同じUserDefaultsにアクセスすることが可能です。
// "group.**********"に、AppGroupで設定した名前をコピペする
let userdefaults = UserDefaults(suiteName: "group.**********")
// セットするとき
userdefaults!.set(値, forKey: "key名")
// 取り出すとき
userdefaults!.string(forKey: "key名")
補足
ちなみに私は、毎回 “UserDefaults(suiteName: “group.**”)” を書くのが大変だと感じたので、
下のようにUserdefaultsManagerのクラスを作成しました。
public class UserdefaultsManager {
let userdefaults = UserDefaults(suiteName: "group.*************8")
// isDisplayHistoryNumber
func setIs〇〇〇〇(is〇〇: Bool) {
userdefaults!.set(isDisplay, forKey: "UserDefaultsのKey名")
}
func getIs〇〇〇〇() -> Bool {
return userdefaults!.bool(forKey: "UserDefaultsのKey名")
}
}
まとめ
ということで、本記事はUserDefaultsをWidgetでも使えるようにする方法をまとめました。
アドバイスや改善などあれば本記事の最後のコメント欄からお願いします。
最後まで読んでいただきありがとうございました!
作業効率がグッと上がるPC道具
リンク
リンク
間違いなしのSwift書籍2冊
リンク
リンク