3

重複の可能性:
int カウントに基づいて複数の変数を作成する
Objective C PHP の「変数変数」に相当するもの

for ループでいくつかの動的変数名を使用したいのですが、変数を実際に参照する方法に困惑しています。

私は一連の UILabels タイトルを持っていますpoll0- poll8. for ループを使用して、それらのtext値を、配列内の対応する数値から参照される別の値に設定します。例えば:

for (int i = 0; i < [pollData count]; i++) {
    label(i value).text = [NSString stringWithFormat:@"%@", [[pollData objectAtIndex:i] toString]]; //sorry for the java-esque method names, just create what I'm used to
}

その値をどのように使用しiますか?

4

2 に答える 2

5

あなたが求めていることを正確に行うことはできません。最善の方法は、ラベルを配列に入れて、配列をループすることです。

NSArray *labels = [NSArray arrayWithObjects:poll0, poll1, poll2, ..., nil];
for (UILabel *label in labels) {
    label.text = [[pollData objectAtIndex:i] toString];
}

上記の配列初期化コードを記述せずに、ラベルを配列にグループ化できるようになるため、IBOutletCollections を確認することもできます。代わりに、これを .h ファイルに入れてから、ラベル アウトレットを Interface Builder のすべてのラベルに接続します。

@property (nonatomic, retain) IBOutletCollection(UILabel) NSArray *labels;
于 2012-03-30T02:31:44.970 に答える
0

NSArray を使用する代わりに、UILabel** を使用して配列を作成できます。このようにして、UILabel へのキャストなしで配列要素を使用できます。

于 2012-03-30T04:47:48.683 に答える