一、寄存器编程代码 1.实例 在某些组件运用到了寄存器相关编程,目的是为了调出当前运行堆栈,部分应用代码如下: 直接拿到 __ss 对应结构体看到 (以手机真机运行环境举例)...
一、寄存器编程代码 1.实例 在某些组件运用到了寄存器相关编程,目的是为了调出当前运行堆栈,部分应用代码如下: 直接拿到 __ss 对应结构体看到 (以手机真机运行环境举例)...
Runloop处理事件模型 RunLoop 的运行逻辑 01、通知Observers:进入Loop 02、通知Observers:即将处理Timers 03、通知Observ...
什么是一个Runloop 是通过内部维护的事件循环(==用户态 和 内核态 相互转换==)来对事件或消息进行管理的一个对象 事件循环是什么? 一个UI事件,一个timer,一...
什么是引用计数? 当我们创建一个新对象时,它的引用计数为1 当有一个新的指针指向这个对象时,我们将引用计数加1 当某个指针不再指向这个对象时,我们将引用计数减1 当对象的引用...
@autoreleasepool 原理 ==@autoreleasepool== 实现原理:以栈为节点通过双向链表形式组合而成的 编译期 @autoreleasepool {...
==1.@synchronize== 用于单例创建,使多线程下保证唯一对象 代码块可用于数组中唯一线程读写 ==2.atomic== 是对象的属性关键字,负责对象的原子性操作...
MRC 底层实现是否一样 自己生成的对象,自己持有 在iOS内存管理中有四个关键字,alloc、new、copy、mutableCopy,自身使用这些关键字产生对象,那么自身...
==@property== 我们声明一个属性str的时候(@property),在编译阶段,编译器会自动给对象添加一个实例变量_str和它的存取方法- (void)setSt...
==程序在内存空间分布为:== 由低向高 各个地址块 不连续 高地址 栈区(stack):由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构...
==app启动到Runtime== 例子: 编译完成后,这个可执行文件,有一个头部,用于表明文件信息: 当你执行它,该二进制文件会被读取,操作系统可执行程序加载器会加载该文件...
==分类== 是不能添加属性的,只能关联属性。属性包含 get,set ,成员变量,而分类里并没有可存储成员变量的地址。所以即使声明了属性,也找不到地址。 分类是不能添加属性...
==objc_class== ==isa 指针== 我们创建的一个对象或实例其实就是一个 struct objc_object 结构体,而我们常用的id也就是这个结构体的指针...
类和结构体 ==类和结构体关系== OC中Class点进去看就是一个指向结构体的指针,在64位环境下占8个字节,所以NSObject在内存中就占8个字节,但是真正的的情况是系...
编写第一个APP 在编写APP之前,dart语法不多说,框架层要做到 了解init等生命周期,状态基,类是怎么创建的,类和界面什么关系,文件和类什么关系 直接了解概念也许不好...