1

私は読んだ:iPhone:タブバーアプリのいくつかのビューコントローラー間でデータを渡す方法との違いは何ですか?

[[UIApplication sharedApplicaton] delegate]

extern struct* global

概念的には、[[UIApplicationsharedApplicaton]デリゲート]がグローバルなものではないことはわかりません。実際、これにより、ダーティグローバル構造体*を使用する際の罪悪感が軽減されます。

私はすぐに新しいプロジェクトを始めています。したがって、この休憩を使用して質問をします。2つのViewController間で(グローバルではなく)データを共有する方法を説明するためのベストプラクティスのコード例はありますか?

例を挙げましょう:

  • これはゲームです
  • プレーヤーの名前を格納するNSString*nameがあります
  • プレーヤーの現在のスコアを保存するNSIntegerスコアがあります
  • GameMainViewControllerが更新され、スコアが表示されます
  • GameSettingViewControllerには、名前を編集するためのテキストフィールドと、スコアをリセットするためのボタンがあります。
  • GameMainViewControllerは、デフォルト名(nilの場合)を設定し、終了時に名前とスコアの両方を保存し、開始時に両方(存在する場合)をロードします。

それで

  • 「名前」と「スコア」はどこに置くべきですか?
  • 両方のViewControllerが値にアクセスして変更するにはどうすればよいですか

ありがとうございました!

4

1 に答える 1

3

名前とスコアをNSUserDefaultsに保存できます。

アイテムを取得する:

NSString *name = [[NSUserDefaults standardUserDefaults]objectForKey:@"name"];

項目の設定:

[[NSUserDefaults standardUserDefaults]setObject:@"Horace" forKey:@"name"];

また、これがアプリの起動後も保持したいデータである場合は、plist にアーカイブすることをお勧めします。

于 2010-04-26T15:54:34.640 に答える