2011-12-06 11 views
2

Objective Cの指導者のための質問を参照する変数名があります。Objective-Cの変数動的ネーミング/実行時の参照

は、私は、フォーム上の6 UILabelsを持っていると言うことができます、プロパティを持つアールのセットアップは、それらを命名myLabel1 - myLabel6

私はforループを通過し、何かがループに依存してこれらを移入が、方法がわからないイムしたい

forループ変数を指定し、それをラベル名の一部にします。ここで

は私がやりたいものです。

for (int LP = 0; i <5) 
{ 

    labelLP.text = [NSString stringWithFormat:@"My label number:%d", LP}; 
} 

何イムのわからないラベルを参照し、LP int型を追加し、私のループ内でそれを使用する方法です。私は確信しているこれを行う方法があると確信しています。どのように..誰ですか?

答えて

1

私はあなたがその場で変数名を作ることはできないと思います。

あなたはいつもループ内スイッチケースを使用することができます。

for (int i=0; i<5; i++) { 

    switch(i) { 

     case 1: 
      myLabel1.text = [NSString stringWithFormat:@"My label number: %d", i]; 
      break; 
     case 2: 
      myLabel2.text = [NSString stringWithFormat:@"My label number: %d", i]; 
      break; 
     ... 
     ... 
    } 
} 

あなたはまた、その配列によって配列、およびループ内でラベルを保存することができます。

重要な点は、変数名について固執するのではなく、オブジェクトが必要な理由とその入手方法を考えることです。 1は、このアプローチを好きかどうか

2

はスタイルの問題であるが、ここでは動作するはず方法です:

for (int LP = 1; i <=6) 
{ 
    NSString *labelName = [NSString stringWithFormat: @"label%d", i]; 
    UILabel *labelLP = (UILabel*)[self valueForKey: labelName]; 
    labelLP.text = [NSString stringWithFormat:@"My label number:%d", LP}; 
} 
関連する問題