私はNSuserdefaultsに特定のものを保存する方法に関するチュートリアルを探していますが、主に配列や文字列を扱うものしか見つけられていません。誰かが私に連れて行ったり、intを保存して読み込んだりする人に知ってもらうことができます。私のアプリケーションでは、私は自分のint highScore = 0を持っています。私はそれがあなたのNSuserdefaultsにこのintを保存したいので、私のゲームがバックアップしたときに、あなたが最近達成した現在のハイスコアを表示します。NSdefaultsに単一のintを保存する
答えて
NSNumber
として保存します(-[NSNumber numberWithInt:highScore]
を使用)。
int highScore = 0;
// write
[[NSUserDefaults standardUserDefaults] setInteger:highScore forKey:@"someKey"];
// read
highScore = [[NSUserDefaults standardUserDefaults] integerForKey:@"someKey"];
どこに私のコードに書込みと読込みを入れるべきですか?スーパービューがロードされたときに呼び出されるべきか、ハイスコアをサブミットするときに呼び出されるべきか?私はそれを試して、エラーにはなりませんでしたが、データを保存しませんでした。 –
ハイスコアを送信し、ユーザーにハイスコアを表示する読み込み時に読み込みます(-viewDidLoadまたは-viewWillAppear)。 –
うーん、それはすべての場所を持っているが、まだ保存していない:/ hmm ... –
NSUserDefaultsは唯一のプロパティリストオブジェクトを処理することができます。プロパティリストオブジェクトは、次のいずれかのタイプでなければなりませんにNSArray、NSDictionaryの、NSStringの、のNSData、NSDataのとのNSNumber。
NSUserDefaultsは自動的するNSNumberオブジェクトにしてから、Cの数値型を変換するヘルパーメソッドの数を持っています。 setInteger:forKey:およびintegerForKey:および整数のヘルパーメソッド。これらのメソッドは、整数がタイプNSIntegerであることを期待しています。 NSIntegerはオブジェクトではありません。 long intの単なるtypedefです。あなたのコードでは、highScoreをintと定義しています。これは問題の原因となる可能性があります。
私は、数値型をNSNumberオブジェクトに変換してオブジェクトを保存することをお勧めします。これは余分な作業のようですが、NSUerDefaultsによって返されるすべてのオブジェクトは一意の方法で処理されるため、コードを単純化できます。
- 1. 単一の値を保存せずに確率分布を保存する
- 2. SQLite - 単一の表のセルにファイルのリストを保存する
- 3. Intをコアデータに保存する
- 4. SharedPreferencesにintを保存する
- 5. Androidでファイルにintを保存する
- 6. ajax/jsonに単一のintを返す
- 7. データベースに単一のデータを保存する - CakePHP
- 8. forループから単一のリストにデータを保存する
- 9. DB2がロールバックからデータベースに単一のテーブルを保存する
- 10. android - sharedPreferencesでintを保存する
- 11. テストスイートをSeleniumの単一ファイルとして保存する
- 12. リストから単一オブジェクトへの反復値を保存する
- 13. Apacheの単一のサブドメインをフォルダに保存
- 14. スパークデータフレームをhdfs上の単一ファイルに保存
- 15. CSVファイルとして単一シートを保存する
- 16. Hibernateで複数のエンティティFKを単一の属性に保存するには?
- 17. Rに単語クラウドを保存する
- 18. 複数のオブジェクトを単一の名前でコアデータに保存する
- 19. 複数のビューコントローラから単一のコアデータエンティティにデータを保存する方法
- 20. Asp.Net MVC5の単一ボタンで複数のフォームデータを保存するには
- 21. 複数のオブジェクトをCoreDataに単一の名前で保存する方法
- 22. Int(共有設定)の値を保存
- 23. 「非単一ページ」のフロントエンドアプリケーション用にJSON Webトークンを保存する場所
- 24. レコードを取得し、単一のC#Webサービスでデータベースに保存する
- 25. 複数のフォームを単一ファイルにシリアル化または保存する方法
- 26. フェッチしたiCloudデータオブジェクトを単一の配列に保存する方法は?
- 27. CURLで単一のリンクを解析してtxtファイルに保存する
- 28. NVARCHAR列データベースにINTを保存するには
- 29. 終了時にintを保存するには?
- 30. Gitを一時的に保存する
ありがとうございました。試してみる。 –