NSUserDefaultsで簡単に値を保存する
iOSアプリ開発で簡単に値を保存できる NSUserDefaults クラスを使ってみます。Udemy の講座では、 Lecture 46 で出てきます。
開発環境
NSUserDefaultsで保存する
- 新規プロジェクトを Single View Application で作成します
- ViewController.swift の ViewDidLoad メソッド内に以下のコードを記入します
NSUserDefaults.standardUserDefaults().setValue("Uesugi Kenshin", forKey: "name")
終了です。これで Uesugi Kenshin が name キーに関連付けられて保存されました。
保存できる値は String, Int, Double など、Swiftの基本的な型の値です。
NSUserDefaults で値を読み込む
先ほど保存した値を読み込んでみましょう。
- 最初に書いたコードの下に以下のコードを記入します
let name = NSUserDefaults.standardUserDefaults().objectForKey("name")
終了です。これで定数 name に Uesugi Kenshin が入ってるはずです。print 関数で見てみると、
Optional(Uesugi Kenshin)
と表示されました。
値は AnyObject で読み込まれる
値を読み込むために、 objectFoKey() メソッドを使用します。その入力時の入力補完で、返り値が AnyObject? になっているのが分かります。
値の保存時に、型の情報が保存されないから AnyObject として読み込まれます。読み込みのコードを修正しましょう。保存した値は String 型でしたので、String 型にキャストします。
let name = NSUserDefaults.standardUserDefaults().objectForKey("name") as! String
as! String をコードの末尾に追加しました。print 関数の出力は Uesugi Kenshin になりました。
まとめ
- NSUserDefaults クラスで、簡単に値の読み書きができる
- 取り出される値は AnyObject 型なのでキャストが必要