私はたくさんのビューを持っていますが、それぞれにまったく同じ 2 つのラベルがあります。ラベルはすべて、各ビューで 1 と 2 のタグが付けられています。
今、私はIBOutletCollection
前に使用していなかったし、これらのビューのそれぞれへの参照を持っていました (これは不要でした)、次のようにビューのラベルへの参照を取得していました:
l1 = (UILabel*)[_labels4 viewWithTag:1]; //_labels4 is a UIView with 2 labels in it
l2 = (UILabel*)[_labels4 viewWithTag:2];
これはうまくいきましたが、コードが肥大化していたIBOutletCollection
ので、 for ループですべてのビューを循環できるように を使い始めたかったのです
だから私がそれをしたとき、それはうまくいくように見えましたが、ラベルがUIViews
代わりにUILabels
for(UIView *view in self.labelViews){ //self.labelViews is the collection of UIViews aka _labels4 + others
UILabel *l1 = (UILabel*)[view viewWithTag:1];
UILabel *l2 = (UILabel*)[view viewWithTag:2];
l2.text = @"Reference"; //crash because unrecognised selector 'setText' sent to UIView
}
誰かが理由を知っていますか?ここでより詳細なコードを確認できます
誤解を解くのに役立ちます: