加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Objective-C将基类对象转换为特定的类

发布时间:2020-12-16 10:22:07 所属栏目:百科 来源:网络整理
导读:我在目标C中非常新,我想知道我想做什么/如何做是可能的. 我有几节课 @interface A: NSObject{ NSString* Aa; NSUInteger Ab;} @interface B: A{ NSString* Ba; NSUInteger Bb;} @interface C: A{ NSString* Ca; NSUInteger Cb;} 我想创建一个函数,我期望’A
我在目标C中非常新,我想知道我想做什么/如何做是可能的.
我有几节课

@interface A: NSObject
{
    NSString*  Aa;
    NSUInteger Ab;
}

    @interface B: A
{
    NSString*  Ba;
    NSUInteger Bb;
}

    @interface C: A
{
    NSString*  Ca;
    NSUInteger Cb;
}

我想创建一个函数,我期望’A’类型的对象,并在实现中检查它们的类型后来是否为B或C.这就是我想要的:

-(void)doSomething:(A *param)
{
    //do some stuff
    if(param is an inscance of B)
    {
        //do stuff with B
    }
    else
    {
        //do stuff with C
    }
}

怎么做到呢?

此致

佐利

解决方法

检查NSObject的方法isKindOfClass:(Class)c
你会这样做:

-(void)doSomething:(A *)param
{
    //do some stuff
    if([param isKindOfClass:[B class]])
    {
        //do stuff with B (cast will be required to avoid warnings!)
        B *castedB = (B *)param;
        //...
    }
    else if ([param isKindOfClass:[C class]])
    {
        //do stuff with C
        C *castedC = (C *)param;
        //...
    }
}

希望这有帮助!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读