三种类型循环引用 1.自循环引用2.相互循环引用3.多循环引用 自循环引用 假如有一个对象,内部强持有它的成员变量obj,若此时我们给obj赋值...

三种类型循环引用 1.自循环引用2.相互循环引用3.多循环引用 自循环引用 假如有一个对象,内部强持有它的成员变量obj,若此时我们给obj赋值...
viewDidLoad中通过NSMutebleArray的array类方法创建数组对象,这个array对象的内存是在什么时机释放的?在每一次ru...
下面看下上面发生了什么过程,objc_initWeak的调用栈: 1.objc_initWeak函数会调用storeWeak函数。2.然后调用w...
ARC&MRC 内存管理涉及到以下几个方法:alloc : 分配对象的内存空间。retain : 使一个对象的引用计数加1release : 使...
内存布局 上面的图代表一个内存区域,内存区域分为内核区的内存(最上边),程序加载的控件(中间),保留的内存空间(最下面)。地址的表示是由下到上是...
整体Runtime数据结构 首先从objc_class这么一个结构体(数据结构)开始,objc_class继承于objc_object。 obj...
扩展(Extension) 一般用扩展来做什么? 1.声明私有属性,是可以不对子类暴露的。2.声明私有方法,方便阅读。3.声明私有成员变量。 扩...
isa详解 nonpointer0,代表普通的指针,存储着Class、Meta-Class对象的内存地址。1,代表优化过,使用位域存储更多的信息...
block的本质 block的变量捕获(capture) block的类型 block有3种类型,可以通过调用class方法或者isa指针查看具...
你用分类都做了哪些事 -作用? 1.声明私有方法 - 把分类的头文件放到对应数组类的.m中,就满足了私有方法的一个声明和使用,又对外不暴露。2...