0

動作しない次のコードがあります。誰かが理由を教えてもらえますか?

label1.text = @"XX" をループに入れると、これが入力されるため、明らかにこれらのオブジェクトを配列に追加することと関係があります。これはできますか?

NSMutableArray *labels = [[NSMutableArray alloc] initWithObjects:label0.text,label1.text,label2.text,label3.text,label4.text,nil];
   for(int i=0; i<labelStrings.count;i++) {
       labels[i] = @"XX";
    }
4

1 に答える 1

1

initWithObjectsfetchを呼び出すときは、 label0.text. これは単なる文字列値であり、現時点でのラベルのテキストの値です。ラベルのテキストなどを設定するための魔法のポインターではありません。

次に、設定するときlabels[i]に、変更可能な配列内の 1 つの文字列を別の文字列に置き換えるだけです。

やりたいことを行う方法は、ラベルの配列を作成し、配列の各項目に対してそのtextプロパティを設定することです。

このようなもの (試したのではなく、直接入力したため、注意してください。このコードにはエラーが含まれている可能性があります):

NSArray *labels = @[label0, label1, label2, label3, label4];
for(int i=0; i<labels.count; i++) {
   [(UILabel*)(labels[i]) setText: @"XX"];
}
于 2013-04-05T15:43:45.273 に答える