【Swift】UserDefaultsをWidgetでも使えるようにする方法

UserDefaultsをWidgetでも使えるようにする方法

実行環境

Swift5.6.1
Xcode14.0
macOS12.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冊



コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です