首页 > 解决方案 > 获取属性值时的 EXC_BAD_ACCESS

问题描述

下面的代码导致EXC_BAD_ACCESS尝试获取在运行时获取的对象的属性值

objc_property_t *properties = class_copyPropertyList(myClass, &count);
for (int i = 0; i < count ; i++) {
    NSString *propertyName = [NSString stringWithCString:property_getName(properties[i]) encoding:NSUTF8StringEncoding];

    if ([object respondsToSelector:NSSelectorFromString(propertyName)]) {
        id value = [object valueForKey:propertyName];
    }
}

有什么要防范valueForKey的建议EXC_BAD_ACCESS吗?

标签: objective-cobjective-c-runtime

解决方案


推荐阅读