IB要素をNSArray
に編成することが主な目的です。多くの場合、オブジェクトの異なるクラスは、互いに同じ配列になります。forループ - オブジェクト型は無視されますか?
NSArray *array = [NSArray arrayWithObjects:((UITextField *)textField), ((UISegmentedController *)segmentedController), nil];
私はときに私のメッセージを「セレクタに応答しません」を取得理由:このは、組織の便利な方法ですが、私はこのような配列を持っている場合、なぜまわりで私の頭を包むように見えることはできませんこのようfor
ループを置く:
for (UITextField *text in array) {
[text setText:@""];
}
for
ループはクラスUITextField
のないオブジェクトを渡すことのようです。
指定された配列のすべてのオブジェクトがループを通過する場合、オブジェクトのクラスを宣言するポイントは何ですか?
EDITただ、参考のために、これは私が今のようにそれを扱うてる方法です:
for (id *object in array) {
if ([object isMemberOfClass:[UITextField class]]) {
foo();
} else if ([object isMemberOfClass:[UISegmentedController class]) {
bar();
}
}
'id'はすでにポインタ型です。 99.9%の時間で、 'id *'へのポインタではなく、単純な 'id'型を使いたいとします。 –