zoukankan      html  css  js  c++  java
  • isKindOfClass和isMemberOfClass 区别

    isKindOfClass和isMemberOfClass 都是NSObject的比较Class的方法。
     
    但两个有很大区别:
    isKindOfClass来确定一个对象是否是一个类的成员,或者是派生自该类的成员。
    isMemberOfClass只能确定一个对象是否是当前类的成员。
     
    例如:
    NSArray *arr1 = [NSArrayarray];
    NSArray *arr2 = [NSArrayarray];
    NSObject *ob = [[NSObjectalloc] init];
     
    NSLog(@"%hhd", [[NSArrayarray] isKindOfClass:[NSObjectclass]]); // YES
    NSLog(@"%hhd", [[NSArrayarray] isMemberOfClass:[NSArrayclass]]); // NO
    NSLog(@"%hhd", [arr1 isKindOfClass:[ob class]]); // YES
    NSLog(@"%hhd", [arr1 isMemberOfClass:[ob class]]); // NO
    NSLog(@"%hhd", [arr1 isKindOfClass:[arr2 class]]); // YES
    NSLog(@"%hhd", [arr1 isMemberOfClass:[arr2 class]]); // YES
     
    [[NSArray array] isMemberOfClass:[NSArray class]]返回NO的原因在于NSArray是一个类簇,意味着每个NSArray的实例都是NSArray内部子类的一个实例,我们会发现[[NSArray array] class]返回值为__NSArray0, 而[NSArray class]返回值为NSArray,所以二者不等。
     
  • 相关阅读:
    linux
    ansible
    语法糖
    jupyter login
    hadoop patch
    ganglia
    unixbench安装使用
    linux使用FIO测试磁盘的iops
    cpu事实负载使用top命令
    phoronix-test-suite测试云服务器
  • 原文地址:https://www.cnblogs.com/lxd2502/p/5756317.html
Copyright © 2011-2022 走看看