如何在iPhone SDK中的同一视图上向同名后缀的所有对象广播相同的消息?

时间:2012-03-05 20:57:59

标签: iphone objective-c

将消息发送到相同类型的对象很容易: How to broadcast same message to all TextField on same view in iPhone SDK?

如果我想对所有具有相同名称后缀的对象(例如uilabelFirstName和uitextfieldFirstName)执行相同的操作,该怎么办?

1 个答案:

答案 0 :(得分: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
    }
}