2011-08-12 2 views
0

私はのリストをConstants.hファイルを作成しました:私もの.hでConstants.hを#importを使用どのように客観的なCの文字列操作を行うには、特定の定数の名前を生成する?

#define kw00 @"foo" 
#define kw01 @"bar" 
... 

。 newQuoteメソッドを使用して、kw stringsのいずれかをランダムに選択しようとしていますが、文字列kwStringの中で定義されているcall a referenceからconstantへの発見方法が難しいです。

-(IBAction)newQuote 
{ 
    int rNumber = arc4random() % kwTotal; 
    (rNumber <9) 
    { 
     NSString *kwString = [@"kw0" stringByAppendingString:[NSString stringWithFormat:@"%d", rNumber]]; 
    } 
} 

思考と示唆が最も高く評価されます。

+2

列挙型の代わりの定義を使用するのはどう? – gsempe

答えて

6

この方法ではアクセスできません。これらの「定数」は、実行時にもコンパイラがコードを見ても存在しません。プリプロセッサによってリテラル文字列に変換されます。

代わりに配列を作成して、指定されたインデックスで要素を取得することができます。

(一般的には、あなたが最後に連番で物事を命名している任意の時間は、あなたが持つかもしれないあらゆる問題への答えは、「配列を使用してください。」)

+0

または彼はdictを作成し、次に彼は名前で項目を取り出すことができます。 –

+0

配列は行く方法です。ありがとう、 –

関連する問題