IOS面试题object-c 121-125

121. 简述Category 在编译过后,是在什么时机与原有的类合并到一起的? ?
1. 程序启动后,通过编译之后,Runtime 会进行初始化,调用 _objc_init。
2. 然后会 map_images。
3. 接下来调用 map_images_nolock。
4. 再然后就是 read_images,这个方法会读取所有的类的相关信息。
5. 最后是调用 reMethodizeClass:,这个方法是重新方法化的意思。
6. 在 reMethodizeClass: 方法内部会调用 attachCategories: ,这个方法会传入 Class
和 Category ,会将方法列表,协议列表等与原有的类合并。最后加入到 class_rw_t 结构体中。
122. 简述 [self class] 与 [super class] ?
@1. self 是类的隐藏的参数,指向当前调用方法的对象(类也是对象,类对象),另一个隐藏参数是_cmd,代表当前类方法的selector。
@2. super并不是隐藏的参数,它只是一个"编译器指示符",super 就是个障眼法,总而言之

你可能感兴趣的:(IOS面试题,ios,面试题,objective-c)