iOS面试题07-Category的内容相关

2022-06-05

问题: 讲一下 Category 的实现原理?注: 本问题回答基于 objc4-818.2 版本.Category在运行时将 实例方法/类方法 动态的注入到 类对象/元类对象 中.Category 在编译过程中会形成如下所示的 _category_t 结构体. 主要包含一下内容._method_li

0 条评论
457 热度

iOS面试题06-KVC内容相关

2022-06-05

问题: 讲一下KVC赋值的具体过程.外部通过调用 setValue: ForKey: 方法.首先先判断是否有属性的Set方法 setKey: 或者 _setKey: ,如果有,则直接调用方法传入参数.如果没有 setKey: 或者 _setKey:,则会调用 accessInstanceVariab

0 条评论
545 热度

iOS面试题05-KVO的实现过程

2022-06-05

问题: KVO的本质是什么?问题: iOS是如何实现对一个对象的KVO?当在iOS中对一个对象添加KVO时,实际上runtime会在原来的类基础上生成一个派生类 NSKVONotifying_xxx , 该类中重写了监听属性的set方法.在Set方法中调用了Foundation框架中 _NSSetI

0 条评论
466 热度

iOS面试题04-class类对象的底层结构

2022-06-05

问题: 简述iOS的 struct objc_class 的结构.问题: 简述iOS的 Class对象 的底层结构.注: 本问题回答基于 objc4-818.2 版本objc_class结构体继承于objc_object结构体,objc_object结构体有且只有一个isa指针.objc_class

0 条评论
627 热度

iOS面试题03-isa指针与superclass指针

2022-06-05

问题: 简述一下 isa指针 的底层结构.isa指针在arm32位直接存储的内容就是class或者meta-class地址信息.在arm32时代, isa指针就是一个内存地址, 但是在 arm64 架构下,isa是一个共用体.但isa指针在arm64位也就是armv8架构下需要做一次位运算 (&am

0 条评论
581 热度

iOS面试题02-iOS对象的本质

2022-06-05

问题: 简述一下iOS对象的分类iOS对象大致可以分为3类,分别是实例对象(instance-object)、类对象(class-object)、元类对象(meta-class-object).实例对象主要存储的是 isa指针、成员变量的值信息.类对象主要存储的内容含有 isa指针、supercla

0 条评论
488 热度