2011-10-21 21 views
5

私はゲームに取り組んでおり、ユーザーが行うすべての進捗状況はNSUserDefaultsで保存されます。それは良いか悪い考えですか?NSUserDefaultでゲームの進捗状況を保存する:良いか悪いのでしょうか?

ゲームを失う可能性はありますか?これを行うより良い方法はありますか?

ユーザーがデバイスを同期すると、iTunesはNSUserDefaultsをバックアップしますか?だから、ユーザーが彼の進歩を失うことはない彼のデバイスを変更する場合、彼はちょうどiTunesとデバイスを同期する必要がありますか?どれくらい安全ですか?

GameCenterの成果は、その時点でユーザーがインターネットに接続していない場合に備えて、NSUserDefaultsとともに保存されます。

あなたの意見や経験を知りたいだけです。すべてのコードは完璧に機能していますが、何らかの理由で進歩を失うことがあります。

コードの詳細については、自由に質問したいと思えば、ここに投稿することができます。

ありがとうございます!

+1

+1私もこの好奇心てきましたNSUserDefaultをチェックして満足していましたが、あなたの質問は私を助けましたが、好奇心がデータベースに銀行につながります。今質問はありません – rptwsthi

答えて

4

NSUserDefaultsは、ユーザーがアプリケーションを同期すると、iTunesに同期されます。ユーザーがゲームを削除しない限り、データは安全です。

ユーザーがゲームを削除した後もデータを保持する必要がある場合、あなたは(たとえば、Dropboxが、自身のサーバ等)どこかにデータを保存検討することができる

+0

あなたの返事をありがとう。私は自分のサーバーに保存することを考えていました。たとえば、ユーザーがiPhoneとiPadを持っている場合など、複数のデバイスでゲームを同期することができます。 NSUserDefaultsをサーバにエクスポートするにはどうすればいいですか?コードはなく、私が研究できるものは素晴らしいだろう。 – tomDev

+2

iCloudをバックアップに使用すると、NSUserDefaultsのiCloud相当版が64 KB – EmilioPelaez

+1

のように限定されていることを覚えておいてください。JSON辞書にシリアル化し、サーバー上のスクリプトにユーザー名とともに(アカウントを持っている場合)それを 'POST 'します。起動時に、同じURLから 'GET'を取得し、逆シリアル化したJSON辞書オブジェクトをNSDictionaryに返し、手動でNSUserDefaultsにインポートします。たとえば、ユーザーの端末の両方で既にゲームが実行されている場合や、そのうちの1人が設定を更新している場合など、エッジの場合には注意してください。何をしたいですか?連続的に同期しますか?現在のインスタンスに設定されているものをすべて上書きしますか? – darvids0n

9

私の意見では、NSUserDefaultsは完全に安全です。アプリのバージョンアップ後も内容は維持されます。

+0

簡単で正しい回答 –

+0

+1 @ ZakyGermanは完全に正しいです – rptwsthi

関連する問題