如何检查对象的类型[iOS/Android/Windows Phone]

iOS

使用 NSObject 基类的 isKindOfClass: 方法。

声明:

- (BOOL)isKindOfClass:(Class)aClass
描述:
Returns a Boolean value that indicates whether the receiver is an instance of given class or an instance of any class that inherits from that class. (required)

参数:

aClass: A class object representing the Objective-C class to be tested.

返回值:

YES if the receiver is an instance of aClass or an instance of any class that inherits from aClass, otherwise NO.

示例代码:

for (UIView *ctrl in [self childViewControllers]) {
    if ([ctrl isKindOfClass:[UITextField class]]) {
        [(UITextField*)ctrl setText:@""];
    }
    else if ([ctrl isKindOfClass:[UISwitch class]]) {
        [(UISwitch*)ctrl setOn:NO];
    }
}

 

Android

The instanceof operator compares an object to a specified type. You can use it to test if an object is an instance of a class, an instance of a subclass, or an instance of a class that implements a particular interface.

示例代码:

void checkforTextView(View v)
{
    if(v instanceof TextView)
    {
        // This is a TextView control
    } else {
        // This is not a TextView control
    }
}


Windows Phone

C# 的 is 操作符关键字。Checks if an object is compatible with a given type. An is expression evaluates to true if the provided expression is non-null, and the provided object can be cast to the provided type without causing an exception to be thrown.

示例代码:

foreach (UIElement ctrl in this.ContentPanel.Children) {
    if (ctrl is TextBlock) {
        //TextBlock
    }
    else if (ctrl is TextBox) {
        //TextBox
    }
}

 

作者:黎波
博客:http://bobli.cnblogs.com/
日期:2012年3月14日

posted @ 2012-03-14 11:01 黎波 阅读(...) 评论(...) 编辑 收藏