20897


今自分が考えているのはゲームでステージ１−１、１−２・・・と沢山あって１−１をクリアすると１−２が解放されるといったよくあるシステムです。  
１−１をクリアして１−２を解放した後アプリのタスクを切ると初期化されてしまいまた１−１からスタートしてしまいます。  
どのようにしたらタスクを切ったところから始めることができますか？

サーバーなどを使わないとできませんか？  
もし、使わなくて済むならその方法を教えてください。

コードを簡単に書いていただけると助かります。

説明が下手で申し訳有りません。  
ご回答宜しくお願いします


CC BY-SA 3.0
2016-01-13T15:05:57.460
20889
2016-01-14T01:55:52.367
11019
question
ios swift iphone swift2
swift アプリのタスクを切った後、続きから再開する方法を教えてください。


サーバー上でユーザのクリア進捗状況を保持しないのであれば、端末内部に保存する方法を取ることができます。

ステージ数のみ保存する形で良いのであれば、  
`NSUserDefaults`が手軽に使えて良いのではないかなと思います。

【ソースコード例】  
ユーザが **1-2** までステージをクリアしている場合  
仮で、1をmajorStageNumber, 2をminorStageNumberとします。

[code]

    // 値の保存方法
    let defaults = NSUserDefaults.standardUserDefaults()
    defaults.setInteger(1, forKey: "majorStageNumber")
    defaults.setInteger(2, forKey: "minorStageNumber")
    defaults.synchronize()
    
    // 値の取得方法
    let majorStageNumber = defaults.integerForKey("major")
    let minor:Int = defaults.integerForKey("minorStageNumber")
    
[/code]

上記の書き方を踏まえて、

  * ステージをクリアするごとにステージ数を端末内部に保存する
  * アプリを起動する度に、端末内部からクリアしたステージ数を取得する

ようにしてみたらいかがでしょうか？

もし、

  * ステージごとのクリア点数(経験値)やコインも保存したい
  * 1つの端末で複数ユーザでゲームをプレイしたい  
3ゲームまでセーブできるといった機能をつけたいといった場合ですかね。

などの想定があるのであれば、`Realm`を使った方が良いと思います。  
`Realm`について、参考までに[公式サイトのリンク](https://realm.io/jp/docs/swift/latest/)をはっておきます。

少しでも参考になれば幸いです。


CC BY-SA 3.0
2016-01-14T01:01:44.700
20897
2016-01-14T01:55:52.367
2016-01-14T01:55:52.367
8968
8968
20889
answer