美文网首页
iOS -- 在类继承体系中查询类型信息 (9)

iOS -- 在类继承体系中查询类型信息 (9)

作者: dingzhijie | 来源:发表于2017-08-28 15:09 被阅读0次

    在类继承体系中查询类型信息

    isMemberOfClass: 能够判断出对象是否为某个特定类的实例, 而 isKindOfClass: 则能够判断出对象是否为某类 或 其派生类的实例, 例如;

    NSMutableDictionary * dict = [NSMutableDictionary  new];

    [dict isMemberOfClass: [NSDictionary  class]]; 为 NO

    [dict isMemberOfClass: [NSMutableDictionary  class]]; 为 YES

    [dict isKindOfClass: [NSDictionary  class]]; 为 YES

    [dict isKindOfClass: [NSArray  class]]; 为 NO

    总结:

    每个实例都有一个指向 Class 对象的指针, 泳衣表明其类型, 而这些 Class 对象则构成了类的继承体系.

    如果对象类型无法在编译期确定, 那么就应该使用类型信息查询方法来探知.

    尽量使用类型信息查询方法来确定对象类型, 而不要直接比较类对象, 因为某些对象可能实现了消息转发功能.

    相关文章

      网友评论

          本文标题:iOS -- 在类继承体系中查询类型信息 (9)

          本文链接:https://www.haomeiwen.com/subject/tniwdxtx.html