2011-08-10 8 views
0

ご質問が不明な場合は、事前にお詫び申し上げます。[array objectAtIndex:]から取得したオブジェクトにプロパティを追加する方法はありますか?

効果的には、forループを使用してオブジェクトの配列にタグ値を設定したかったのです。

for (int j = 0; j < [array count]; j++) { 

[array objectAtIndex:j].tag = j; 

} 

私にできることはありますか? array内のすべてのオブジェクトを想定し

答えて

1

それを行う別の方法:

int counter = 0; 
for (UIView* view in array) 
    view.tag = counter++; 
+0

私は少しループの条件付きであると混乱しています – Mahir

+0

ループは自動的に配列のUIView *メンバーを列挙します – sternr

+0

。ありがとう – Mahir

0

UIViewのサブクラスである:

for (int j = 0; j < [array count]; j++] { 
    UIView *tmpView = (UIView *)[array objectAtIndex:j]; 
    tmpView.tag = j; 
} 

objectAtIndexは、オブジェクト、オブジェクトのない新しいコピーへのポインタを返します。したがって、返されたポインタを介して変更されたものは元の配列オブジェクトに反映されます。

+0

しかし、それはループの中なので、tmpViewのタグプロパティは、ループ反復すると上書きされないでしょうか? – Mahir

+0

各繰り返しtmpViewは、インデックスjにあるオブジェクトを指します。あなたが欲しいのではないですか?インデックス0でのビュータグ0の取得、ビュー1でのタグ1の取得、および類似。 – taskinoor

+0

だから、tmpviewは毎回違うものを指しているので、毎回同じビューの値を書き換えていませんか? – Mahir

関連する問題