7
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

UserDefaultsをもっとシンプルに

Posted at

はじめに

今回はUserDefaultsをもっと簡単に管理しやすくするためのコードを紹介していきたいと思います。是非参考にしていただけると幸いです☺️
ジェネリクスenumを利用しています。

環境

  • macOS Catalina(10.15.2)
  • xcode(11.3)
  • Swift5.1

コード

※UserDefaultsはあちこちのファイルで定義すると管理が大変になるので、このように1つのファイルで管理するといいかもです。

UserDefaults.swift

enum UserDefaultsKey: String {
    case title = "title"
        
    func get<T>() -> T? {
        return UserDefaults.standard.object(forKey: self.rawValue) as? T
    }
    
    func set<T>(value: T) {
        UserDefaults.standard.set(value, forKey: self.rawValue)
    }
    
    func remove() {
        UserDefaults.standard.removeObject(forKey: self.rawValue)
    }
}

利用するときはこんな感じです。

     UserDefaultsKey.title.set(value: "氷菓")
     UserDefaultsKey.title.get() ?? String()
     UserDefaultsKey.title.remove()

##解説
enumを利用しenumのメソッドに登録、取得、削除の処理を定義しています。caseの部分にKeyを定義しています。UserDefaultsはどの型でも扱うことができるので、メソッドにジェネリクスを利用しています。
流れとしては、caseでキーを指定しそれに対応する値を各メソットでどう取り扱うかという感じです。

##おまけ(UserDefaultsのファイルを見る!)
思ったより早く説明しきってしまったので、おまけコーナーを設けました笑。知っている方もいるかと思いますが、知らなかった方は是非参考にしてみてください。

  1. xcodeの左上にあるiPhoneマークをクリックし、「Add Additional Simulator」を選択後、下の写真を参考にファイルをダウンロードしてください。
    image.png

2.ダウンロードしたファイルを「パッケージの内容を表示」を選択して開いてください。
3.次のパス(AppData/Library/Preferences/任意のファイル名.plist)にあるファイルを開くとUserDefaultsの中身を確認することができます。

7
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?