

### 前提・実現したいこと

ゲームアプリを作っているのですが、ステージごとにスコアを保存したいです。  
以下のように色々選択肢があるようなのですが、できればNSUserDefaultsを使いたいです。  
・NSUserDefaults  
・CoreData  
・Parse

### 考えてみたこと

以下のように配列の要素番号（`someArray[0]`）を各ステージにあわせて保存しようかと考えました。  
ただもっと良い方法がありそうです。  
アドバイスいただけるとありがたいです。

### ソースコード

[code]

    var someArray: [Int]!
    var score = 0
    let userDefaults = NSUserDefaults.standardUserDefaults()
    
    //ステージの数だけ配列の要素を代入
    someArray = [0,0,0,0,0]
    someArray[0] = score
    userDefaults.setObject(someArray, forKey: "someArray")    
    userDefaults.synchronize()
    someArray = userDefaults.objectForKey("someArray") as! [Int]
    
[/code]


CC BY-SA 3.0
2016-02-03T11:08:04.873
21666
2016-02-14T14:15:52.087
2020-06-17T08:14:45.997
-1
12807
question
ios swift swift2
ゲームアプリでステージごとにスコアを保存したい


NSUserDefaults に入れるのをint配列ではなくて、NSDictionary配列
にするとステージごとにほかのパラメーターも保存できるので便利になるかなと思います。

[code]

    someArray = [
            ["score":0,"time":100],
            ["score":0,"time":100],
        ]
    someArray[0]["score"] = score
    userDefaults.setObject(someArray, forKey: "someArray")    
    userDefaults.synchronize()
    someArray = userDefaults.objectForKey("someArray") as! Array
    
[/code]

CoreData,SQLite とか使うとソートが簡単にできるのでランキングがつくれますね。（初期設定に時間かかりそうですが...）  
Parse だとインターネットランキングがつくれそうです。(Parseは終了するそうなので今から新しく作るならFirebaseでしょうか)


CC BY-SA 3.0
2016-02-14T14:15:52.087
22074
2016-02-14T14:15:52.087
3457
21666
answer