"后来,我们就拿到了地球的太空照片,那是在一颗卫星上拍摄的,可以看到地球的完整一天,从日出到日落。我把照片排成那个顺序,我想表达一种连接,一方面是太阳的阴影在地球表面的移动,...
"后来,我们就拿到了地球的太空照片,那是在一颗卫星上拍摄的,可以看到地球的完整一天,从日出到日落。我把照片排成那个顺序,我想表达一种连接,一方面是太阳的阴影在地球表面的移动,...
咋一看,只能了解其定义了一些数据存储的空间,里面存储的应该是指针,而且这些指针3bit对齐,似乎跟OC的objc_object指针很类似...
————————————
.align 3 // 表示的应该是 2^3 = 8 字节对齐吧?
👀
解读objc_msgSend引入 众所周知,Objective-C动态性的根源在方法的调用是通过message来实现的,一次发生message的过程就是一次方法的调用过程。发送message只需要指定对...
NSMutableArray *array = [NSMutableArray array];
NSLog(@"array: %p", array);
_objc_autoreleasePoolPrint();
上面的代码 MRC 下执行时能在自动释放池里看到 array,ARC 下执行时自动释放池里没有 array,之所以没有,是因为 objc_autoreleaseReturnValue 函数中 prepareOptimizedReturn 返回了 true,编译器做了优化,没有把 array 放入自动释放池。
autorelease 函数只是把对象放入自动释放池,自动释放池并不会持有对象,自动释放池的作用延时释放,当池 pop 时,会循环把池的对象做一次 objc_release 释放操作。
objc_autoreleaseReturnValue和objc_retainAutoreleasedReturnValue函数对ARC的优化注:本文在每段代码中首段标有 "//ARC" 意为使用ARC的代码, "//MRC"则为MRC的代码 上面是NSMutableArray的类方法,�这样返回在ARC里面没有任...
"objc_retainAutoreleasedReturnValue函数的else分支上要执行一次retain" 是为了适配兼容调用函数和被调用函数之间有一个是arc编译另外一个是mrc编译的场景
问题分析 我看过很多文章关于在dispatch_async的block里面使用_weak self, 但是让我疑惑的是,以下代码是否需要必须使用_weak self, 因为我...
前言 之前写过一篇block的文章,参考的源码是libclosure-38的,跟libclosure-67有所区别,且由于之前理解不足文章有些细小错误,决定重新写一篇。 ...
1. __weak使用 1.1 ARC以后引入了__weak的概念来修饰Objective-C对象,使用这个关键字修饰的对象,对象的引用计数不会+1,这个关键字和__unsa...