iOS面试题18-weak实现原理相关内容
问题: 简述一下weak的实现原理.weak是弱引用,用weak来修饰对象其引用计数是不会增加了, weak常用来解决循环引用问题.weak的实现原理是Runtime全局维护的一张weak表,其中key为objc_object的内存地址指针,value为weak指针的地址数组.weak相关步骤如下所
问题: 简述一下weak的实现原理.weak是弱引用,用weak来修饰对象其引用计数是不会增加了, weak常用来解决循环引用问题.weak的实现原理是Runtime全局维护的一张weak表,其中key为objc_object的内存地址指针,value为weak指针的地址数组.weak相关步骤如下所
问: 简述一下iOS的App冷启动过程.阶段1: dyld (dynamic link editor) ,dyld 是iOS的动态链接器, 可以用来装载Mach-O文件.装载App的可执行文件,同时递归装载所有依赖的动态库.当dyld装载完成之后,就会通知Runtime执行下一步操作. 阶段2: R
问题: 网络模型的层次结构是怎么样的? 为什么要分层?为了方便管理以及简化网络的复杂度, 网络的不同方面被分解成多层次结构,每一层只与相邻的上层或下层进行通信,这样做的意义会通过解耦大大的降低网络的复杂度.主流的分层模型结构有两种:OSI 开放系统互联参考模型OSI开放系统互联参考模型应用层表示层会
问题: CADisplayLink和NSTime使用过程注意事项?需要主要对Target的引用问题,可能会进一步的造成循环引用问题.CADisplayLink 和 NSTime主要依赖于RunLoop, 两者并不准时.iOS设备的屏幕刷新频率是固定的,CADisplayLink在正常情况下会在每次刷
问题: 简述一下内存的几大区域?iOS的内存分布如下图所示 .主要分为代码段代码段主要存储编译后的代码数据段字符串常量初始化完成的全局变量和静态变量未初始化的全局变量和静态变量堆区内存地址分配由低到高通过 alloc malloc calloc 进行内存分配栈区内存地址分配由高到底函数调用开销,比如
问题: 简述一下多线程的相关内容.回答目录:线程与进程.多线程的方案.同步、异步、串行、并发.死锁.GCD队列组.OSSpinLock.os_unfair_lock.pthread_mutex.递归锁.NSLock、NSRecursiveLock.NSCondition.NSConditionLoc
问题: 简述一下RunLoop 的相关内容.回答目录:基本作用.RunLoop与线程.RunLoop的底层结构.RunLoop的常用Mode.RunLoop的流程.RunLoop的主要应用.本问题回答基于 CF-1153.18 版本.RunLoop基本作用:保证程序的持续运行处理App中得各种事件(
问题: 简述一下method的内部结构.注: 本问题回答基于 objc4-818.2版本类/对象方法底层存储的结构体是 method_t, method_t主要含有三个成员变量.SEL 类型的 name;char * 类型的 type;IMP 类型的 imp;在 818.2版本中有 big smal
问题: 阐述一下你所了解的block所有相关内容.block的本质block的分类以及copy情况block的变量捕获block中 auto变量的强弱引用问题__block的作用以及实现原理block中的循环引用问题.问题: 讲一下block的本质.block的本质是OC对象.它的底层结构中也含有i
问题: Category可以添加属性吗?Category是可以直接添加属性, 因为 category_t 是含有 propert_list_t 类型的 properties 的成员变量结构的.但是 Category 添加属性的本质 实际上只是添加的 Set方法 和 Get方法 的 声明,并未实质上添