2012-03-05 5 views
1

これは、同じ型のオブジェクトにメッセージを送信するために十分に簡単です: How to broadcast same message to all TextField on same view in iPhone SDK?iPhone SDKの同じビューで同じ名前のサフィックスのすべてのオブジェクトに同じメッセージをブロードキャストする方法はありますか?

私は同じことをやってみたいけどに(例uilabelFirstNameとuitextfieldFirstName用)と同じ名前サフィックスのすべてのオブジェクトにしたらどう?

+0

は、タグを使用する方が簡単かもしれません... – matt

+0

Objective-Cのオブジェクトはありません名前。 –

答えて

1

これは、(オブジェクトまたは任意の他の代替ポインタ)subviewsを使用して行うことができない

あなたは、他の回答にあるように、そのサブビューのループである、

for(UIView* view in [myView subviews]){ 
    // my reference to "view" here <--- 
} 

あなたはポインタを持っていますオブジェクトに移動しますが、ポインタの名前を取得する方法はありませんオブジェクトです。それはしようとしているあなたの例の名前のように見えるよう

あなたは、しかし、各オブジェクトのクラスを得ることができます:

for(UIView* view in [myView subviews]){ 
    if([view class] == [UILabel class]){ 
     // it's a UILabel 
    } 
    if([view class] == [UITextField class]){ 
     // it's a UITextField 
    } 
} 
+0

はい、私はクラスタイプには興味がありません。私はObjective Cが例外的に動的な言語だと思ったのでとても気になります。 – user310291

+0

@ user310291 - これは非常に動的です.Appleが許している限り、あなたが望むことを行うためのコードを書くことができます。 –

+0

ポインタ名を文字列に変換する方法がないので、別の方法を使用する必要があります。それは間違いなくダイナミックです...他の多くの言語で文字列を実際のクラスに変換することができますか? –

関連する問題