私はIphoneの飲み会カードゲームアプリを作っています。 すべてのカードは何かが違うことを意味し、ユーザーが情報ボタンを押してから、現在のカードに関する情報を含む新しい画面を表示できるようにしたい。どのように私は長い文字列を束ねるのではなく、テキストを読み込むための文書を作ることができますか?ファイルからテキストを読み込む
おかげ
私はIphoneの飲み会カードゲームアプリを作っています。 すべてのカードは何かが違うことを意味し、ユーザーが情報ボタンを押してから、現在のカードに関する情報を含む新しい画面を表示できるようにしたい。どのように私は長い文字列を束ねるのではなく、テキストを読み込むための文書を作ることができますか?ファイルからテキストを読み込む
おかげ
あなたはのplistファイルに見ることができる - 彼らは様々なコレクションオブジェクトに非常に簡単にロードされ、Xcodeでのplistエディタで編集することができます。例えば
、あなたは辞書、あなたが必要なだけの簡単にアクセスできる文字列を提供しますNSDictionaryのからコンビニエンスコンストラクタ
+ (id)dictionaryWithContentsOfURL:(NSURL *)aURL
としてデータを整理している場合。
このメソッドは、文字列を主にUI要素ではなくデータと見なす場合に便利です。
更新:
@Alexニコルは、ここでは、示唆したように、あなたが実際にそれを行うことができる方法である。
plistファイルを作成するには:Xcodeプロジェクトでは
en.lproj
にファイルを保存して、ローカライズを支援しますuser1
用)キーの名前と値(例えば「ジョー」)を入力します。内容:
NSURL *plistURL = [[NSBundle mainBundle] URLForResource:@"Property List" withExtension:@"plist"];
NSLog(@"URL: %@", plistURL);
NSDictionary *strings = [NSDictionary dictionaryWithContentsOfURL:plistURL];
NSString *user1 = [strings objectForKey:@"user1"];
NSLog(@"User 1: %@", user1);
のplist、JSON文字列、およびデータベースがバーに入ったSQLite ...
おっと!私はそれらが3つの最も明白な選択肢であることを意味します。 JSON文字列はおそらく最も簡単に作成して "トランスポート"しますが、NSDictionaryやNSArrayにすべてのものをロードするのが最も簡単ですが、各文字列にアクセスするとファイルから読み込みます。
SQLite DBは非常に大量(数千)の文字列に対して最も一般的でスピード/ストレージ効率が優れていますが、設定には多少の努力が必要です。
私の他の答えでは、テキストが主にデータと見なされる場合は、辞書の使用をお勧めします。ただし、文字列がUI要素(アラートテキスト、ウィンドウタイトルなど)である場合は、strings
ファイルを参照し、NSBundle
のサポートが必要な場合があります。
文字列ファイルはローカリゼーションに最適です。形式はhereです。あなたは、ファイルLocalizable.strings
を呼び出す場合
NSString *text1 = NSLocalizedStringFromTable(@"TEXT1", @"myStringsFile", @"Comment");
は、あなたがより簡単なフォームを使用することができます:
は、アプリ、あなたにそれらを読んで、このようなものを使用するには
NSString *str1 = NSLocalizedString(@"String1", @"Comment on String1");
便利議論here - 少し古いですが、まだ有用です。
また、XcodeでPlistリソースを作成する方法と、そのようなリソースファイルをNSDictionaryとしてロードする方法についても触れます。 –