Swiftプログラミング UserDefaultを使ってみよう

Swiftプログラミング UserDefaultを使ってみよう

今回はUserDefaultsを使ったデータの保存機能について解説をしていきます。本記事をマスターすると↓のように、クリックした回数を簡単に値受け渡しできるだけでなく、アプリを一度落としてもクリック回数を引き継いで呼び出すことができます。✌️

UserDefaultsとは

端末のローカルストレージを利用して、iOSアプリ内のデータを永続的に保存できるライブラリの一つです。アプリを停止させても保持しておきたいデータなどはUserDefaultsを使って保存することができます。

 

UserDefaultsの利用例

今回はSKSceneを用いて下の2画面を用意しました。FirstSceneの灰色部分のクリック回数をUserDefaultsを用いて保存し、ScoreSceneでも呼び出すアプリを実装していきましょう。

 

FirstSceneの処理

FirstSceneではクリック回数をカウントし、ScoreSceneに遷移するイベント時にカウント数をUserDefaultsを用いて保存してきます。

 

UserDefaultsを用いてデータ登録

touchesBganメソッドでは灰色部分のクリック回数を保持する変数scoreを、クリクされる度にインクリメントすると同時に、20~23行目でUserDefaultsを用いてローカルストレージに保存しています。

21行目では、保存する際には呼び出す際のキー値としては”score”を指定しています。

23行目では、ローカルストレージへ同期しています。同期化することによって、実際にローカルストレージへ値が保存されます。

ScoreSceneへの画面遷移

FirstSceneで画面下部のラベルをクリックするとScoreSceneへ遷移する処理も以下のように追記しておく。

ScoreSceneの処理

ScoreSceneでは、画面遷移後にローカルストレージからキー値”score”で取得できる値をラベルのテキストに表示している。また、画面中央のラベルをクリックすることで、ローカルストレージにキー値”score”で保存されている値を初期化する機能も実装する。

 

UserDefaultsを用いてデータ取得

didMoveメソッドでは、9行目でUserDefaultsを用いてローカルストレージから値を取得しています。取得する際にキー値”score”を指定する事によって、FirstSceneで保存された値を呼び出す事ができます。

呼び出した値を定数scoreに代入し、10行目でラベルの表示文字列を更新する際に利用しています。

 

保存データを初期化するボタンの実装

画面中央のラベルをクリックすると、キー値”score”で保存されているローカルストレージの値を0に更新する機能を22,23行目で実装しています。22行目のUserDefaults.standard.setメソッドはFirstSceneで利用している通りの利用方法です。

ここで、シミュレータを起動すると冒頭で挙げたようにデータの保存が可能になります。またクリックした回数の初期化もできるようになりました。

 

 

 

 

 

 

 

 

以上で、UserDefaultsを利用した永続的なデータ保存が可能となります。

付録:ソースコード

参考サイト

1.SKSceneの利用方法

Swiftプログラミング SKSceneによる画面遷移

2.swift:超初心者向け!UserDefaultsでデータ保存する!

ViewControllerも交えてUserDefaultsの解説がされてる良記事です!

 


Leave a Reply

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