首页 > 代码库 > iOS动态的判断一个对象中是否包含一个属性

iOS动态的判断一个对象中是否包含一个属性

<span style="font-family:Arial, Helvetica, sans-serif;">有时候我们可能会需要判断一个对象是否有这个属性,那么我们可以用下面这个方法</span>
<span style="font-family: Arial, Helvetica, sans-serif;"></span>
<span style="font-family: Arial, Helvetica, sans-serif;">#pragma mark - 动态的判断一个类中是否包含一个属性</span>
+ (BOOL) getVariableWithClass:(Class) myClass varName:(NSString *)name{    unsigned int outCount, i;
    Ivar *ivars = class_copyIvarList(myClass, &outCount);
    for (i = 0; i < outCount; i++) {
        Ivar property = ivars[i];
        NSString *keyName = [NSString stringWithCString:ivar_getName(property) encoding:NSUTF8StringEncoding];
        keyName = [keyName stringByReplacingOccurrencesOfString:@"_" withString:@""];
        if ([keyName isEqualToString:name]) {
            return YES;
        }
    }
    return NO;
}

YES包含,NO不包含。 把一些通用的方法抽离出来可以让程序更加简洁

互相学习,感谢您的阅读

iOS动态的判断一个对象中是否包含一个属性