C# 目标-C相当于';as';C中的运算符#

C# 目标-C相当于';as';C中的运算符#,c#,objective-c,C#,Objective C,Objective-C是否有类似于C#中“as”运算符的强制转换运算符,或者建议使用isKindOfClass方法测试对象,如果是,则将对象强制转换为所需的类? 在C#中,我这样做: Class1 o1 = obj as Class1; if (o1 != null) { // ... } if ([obj isKindOfClass:[Class1 class]]) { Class1* o1 = (Class1*)obj; // ... } 在Objective-C

Objective-C是否有类似于C#中“as”运算符的强制转换运算符,或者建议使用isKindOfClass方法测试对象,如果是,则将对象强制转换为所需的类?
在C#中,我这样做:

Class1 o1 = obj as Class1;
if (o1 != null)
{
    // ...
}
if ([obj isKindOfClass:[Class1 class]]) {
    Class1* o1 = (Class1*)obj;
    // ...
}
在Objective-C中,我应该这样做:

Class1 o1 = obj as Class1;
if (o1 != null)
{
    // ...
}
if ([obj isKindOfClass:[Class1 class]]) {
    Class1* o1 = (Class1*)obj;
    // ...
}


没错,
isKindOfClass
是检查对象是给定类的实例还是子类的实例的正确Objective-C方法

但请看一看这些问题的答案

对于各种整洁的宏、类别和C++模板提供了一个模拟的语法


C++ >代码>动态> <代码> > C >代码> AS < /代码>运算符。<,> p> >代码>类类< /COD>是正确的方法。这不等同于<>代码> 或<代码>为< /COD>正是由于这种行为;在C#
is
as
中,a
B
表示a
a