使って創ってApp

ソフトウェアを使ったり作ったりするブログです

NSUserDefaultsで簡単に値を保存する

iOSアプリ開発で簡単に値を保存できる NSUserDefaults クラスを使ってみます。Udemy の講座では、 Lecture 46 で出てきます。

www.udemy.com

開発環境

NSUserDefaultsで保存する

  1. 新規プロジェクトを Single View Application で作成します
  2. ViewController.swift の ViewDidLoad メソッド内に以下のコードを記入します
    NSUserDefaults.standardUserDefaults().setValue("Uesugi Kenshin", forKey: "name")

終了です。これで Uesugi Kenshin が name キーに関連付けられて保存されました。

保存できる値は String, Int, Double など、Swiftの基本的な型の値です。

NSUserDefaults で値を読み込む

先ほど保存した値を読み込んでみましょう。

    1. 最初に書いたコードの下に以下のコードを記入します
      let name = NSUserDefaults.standardUserDefaults().objectForKey("name")

終了です。これで定数 name に Uesugi Kenshin が入ってるはずです。print 関数で見てみると、

Optional(Uesugi Kenshin)

と表示されました。

値は AnyObject で読み込まれる

値を読み込むために、 objectFoKey() メソッドを使用します。その入力時の入力補完で、返り値が AnyObject? になっているのが分かります。

f:id:hitxutokun:20151209214127p:plain

値の保存時に、型の情報が保存されないから AnyObject として読み込まれます。読み込みのコードを修正しましょう。保存した値は String 型でしたので、String 型にキャストします。

let name = NSUserDefaults.standardUserDefaults().objectForKey("name") as! String

as! String をコードの末尾に追加しました。print 関数の出力は Uesugi Kenshin になりました。

まとめ

  • NSUserDefaults クラスで、簡単に値の読み書きができる
  • 取り出される値は AnyObject 型なのでキャストが必要