NSUserDefaultsを使って簡単なメモを作ってみる【Swift低空飛行ガイド】

2015年5月20日

f_f_business_31_s128_f_business_31_1bg

今回は手始めにシンプルな1行メモアプリを作ります。メモしたい内容を入力して保存ボタンを押すと記録されて、次に起動した時にその内容を呼び出して自動的に表示されます。ただそれだけです。でもこの方法を覚えておくと、例えばゲームアプリの進行具合を記録したり、前回ログインした時のユーザ情報を覚えておいたりできるようになります。

スポンサーリンク

学べること

  • NSUserDefaultsによる簡単なデータの保存、呼び出し

 

始めましょう!

プロジェクトの新規作成

まずはプロジェクトを新規作成します。名前は「SimpleMemo01」としておきましょう。テンプレートは「Single View Application」を選択してください。この辺の設定は基本的に毎回同じです。手順の詳細は以下に用意しましたのでご参照ください。

「基礎手順:プロジェクトの新規作成」

 

オブジェクトの配置

プロジェクトを作成したら、次はストーリーボード上にメモを表示する場所とボタンを作成します。使用するオブジェクトはメモの内容を表示するためのテキストフィールド「Text Field」とメモを内容を保存するためのボタン「Button」の2つです。右下のオブジェクト一覧から選んでストーリーボード上にドラッグして配置しましょう。配置するときはスクリーン上の画面左上あたりが良いです。あんまり右や下に配置してしまうと実行したときに画面の外側にはみ出して表示されなくなることがありますよ。ボタンはついでに表示される文字を修正しておきます。

簡単メモ_オブジェクト作成01

 

プログラムコードとの接続

オブジェクトを作成したら、それを自由に制御できるようにプログラムコードと接続します。場所はどこでも良いですが、困ったらviewDidLoad(アプリ起動時に必ず実行されるプログラムを書くところ)の上あたりがいいでしょう。メモ用のテキストフィールドはアウトレット接続で「txtMemo」という名前にします。ボタンの方はアクション接続で「pressSaveBtn」にしましょう。アウトレット接続とアクション接続の方法も基礎手順の方に詳細を用意しましたので、わからなくなった時はご参照ください。

「基礎手順:アウトレット接続」

「基礎手順:アクション接続」

 

試しに実行

先ほど作った「pressSaveBtn」に1行書き加えて、ボタンが押されたら「ボタンが押されました」と表示するようにして試しに実行してみましょう。実行方法は以下に説明があります。

「基礎手順:アプリの実行」

追加したソースはこんな感じです。実行してXcodeの画面にメッセージが表示されたらオッケーです。

 

メモの保存と読み込み

最後にようやく一番重要なメモの保存と呼び出し機能を追加します。まずはアプリ起動時に保存している内容を呼び出せるようにします。viewDidLoadというところに書いておけば実行すると勝手に動かしてくれるので、そこに2行追加して以下のように追加します。

次は保存ボタン。こちらはさっき作った「pressSaveBtn」の中に書いておきます。こちらも2行です。

ここで追加した内容について説明します。どちらにもまず1行目に「let ud = 」で始まるコードが書かれていますが、これが「NSUserDefaults」というデータを記憶・呼び出しを行う機能を使用しますよ、という宣言になります。そして保存するときには「setObject」で呼び出す時のキーワードを指定します。呼び出す時は「StringForKey」でそのキーワードを使います。ここではMEMOというキーワードをデータの保存と呼び出しで使用しています。

 

実行してみる

シンプルメモ01これで完成です!では実行してみましょう。画面が表示されたらメモ入力欄に適当な文字を入力して保存ボタンを押してください。次に一旦終了してもう一度実行してみると終了前のメモが表示されます。表示されるのが当たり前でしょと思ったら、入力後にボタンを押さないで終了してみたり、viewDidLoadに追加した2行を削除してみたり、いろいろ試してみてください。そうすれば自分で書いたプログラムが働いているんだと実感できると思います。

サンプルプロジェクトのダウンロードはこちらです

 

 

おわりに

おまけの情報ですが、「StringForKey」の代わりに「removeObjectForKey」と記述すると、登録されている内容を呼び出す代わりに削除できます。不要なデータが残ってしまって気持ち悪いなぁという場合にはこれで消してください。ちないにiPhone上で実行したときは、アプリを削除するとこの方法で保存したデータも一緒に消去してくれます。

また、今回の方法だと、例えばメモが10個あった場合、1個ずつ保存や読み出しをしなければならず、ちょっと面倒になります。データが多い場合には「Core Data」という別の方法を使うことになりますので、そのうちそちらも取り上げてみたいと思います。

スポンサーリンク