首页 > 解决方案 > 为什么当我使用 object_getIvar 查找 NSURL object 的实例变量时会崩溃?

问题描述

这是一个简单的测试程序,它会在 object_getIvar(url, ivars[I]) 处崩溃;崩溃信息是 Thread 1: EXC_BAD_ACCESS (code=1, address=0x200001d80)

int main(int argc, char * argv[]) {
    NSURL *url = [NSURL URLWithString:@"dasadas"];
    NSMutableArray *result = [NSMutableArray new];
    unsigned int count;
    Ivar *ivars = class_copyIvarList([NSURL class], &count);
    for (unsigned int i = 0; i < count; ++i) {
        id obj = object_getIvar(url, ivars[i]);
        [result addObject:obj];
        NSLog(@"%@",result);
    }
    free(ivars);


//    @autoreleasepool {
//        return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
//    }
}

标签: iosobjective-cruntime

解决方案


推荐阅读