[Swift] NSUserDefaultsを使って一時的なデータの保存を行う。画面を跨いだデータの受け渡しに便利です。

Swiftのお話です。iOSアプリを開発しているとき、viewControllerからviewControllerへデータの受け渡しをしたいことがよくあります。その場合、Segueを使って画面遷移とともに変数を渡したり、notificationを使ってデータを飛ばすというのが一般的ではないでしょうか。

しかし状況によってはそうした方法が使えない場合があります。例えば、あるviewControllerで処理が完了したのち、新しいviewControllerにtabbarContoller経由で遷移させ、表示した直後にfacebookのシェアダイアログを表示するといった場合です。新しいviewControllerが発行されているのでnotificationではうまく動かないし、tabbarContollerで遷移先のviewControllerをラップしているのでSegueも使えないという状況ですね。そういった珍しい状況でも使えるのがNSUserDefaultsの強みです。もちろんテンポラリのDBかなんかを用意してちゃんとやるのが一番でしょうけど。今回はライトにやりたいのでNSUserDefaultsを使います。

Swift2.x系の場合

データの書き込み

bool型や、String型などのオプジェクトを収納できます

データの取り出し

型ごとに取り出す方法が違うので注意。integerForKeyとかも使えます。

データの削除

Swift3.x系の場合

データの書き込み

データの取り出し

型ごとに取り出す方法が違うので注意。integerとかも使えます。

データの削除

なお、Android開発時に同様のことをやりたい場合はこちらのエントリーを参照してください。

[Java] SharedPreferencesを使って一時的なデータの保存を行う

1件のコメント

返信を残す

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