如何检查对象的类型[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日

你可能感兴趣的:(windows phone)