如何检查对象的类型[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.
示例代码:
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.
示例代码:
{
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.
示例代码:
if (ctrl is TextBlock) {
//TextBlock
}
else if (ctrl is TextBox) {
//TextBox
}
}
作者:黎波
博客:http://bobli.cnblogs.com/
日期:2012年3月14日