2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

NSUserDefaultsでデータを保存する

Posted at

はじめに##

ゲーム製作の中でスコアのランキングをInt型の配列で作ったのですが、そのままではアプリを終了すると(当然ですが)消えてしまいます。再度アプリを立ち上げた時、前回のスコアの記録が保持されている仕様にしたく、例によってネットで色々と調べまわり、NSUserDefaultsを使ってデータを保存するという方法をとりました。また、その中で参考サイトのサンプルプログラム通りにプログラムしてもうまくいかなかった部分(特に下記手順4)は、エラーが出ず、期待した振る舞いをしてくれるところまでなんとか手探りで修正しました。

もっと良い書き方をご存知でしたら、是非教えて頂きたいです。

環境##

Swift 2
Xcode 7.2

手順##

1.保存するデータをつくる。

var scores = [0,0,0,0,0,0]

 ※今回はInt型、6要素の配列としました。

2.利用するクラスの中でNSUserDefaultsのインスタンスをつくる。

let ud = NSUserDefaults.standardUserDefaults()

3.データを書き込みたい場所に以下のコードを書く。

ud.setObject(scores, forKey: "scoresKey")
ud.synchronize()

4.データを読み込みたい場所に以下のコードを書く。

if ud.objectForKey("scoresKey") != nil {
    scores = ud.objectForKey("scoresKey") as! [Int]
}

5.保存されたデータを削除したい場所に以下のコードを書く。

ud.removeObjectForKey("scoresKey")

参考サイト##

NSUserDefaultを利用した中年データ永続保存 - Swiftサラリーマン

[Swift]【NSUserDefaultsの基本的な使い方】表示、格納、削除。

いつもありがとうございます。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?