首先是源码, 包括注释, 有时候类名和变量名以及方法名也会提供一些信息, 其次就是调试, 根据输出结果合理猜想, 再有就是总结其它文章的内容了.
AutoreleasePool 的实现机制 (二)本文章基于 objc4-725 进行测试.objc4 的代码可以在 https://opensource.apple.com/tarballs/objc4/[https://...
首先是源码, 包括注释, 有时候类名和变量名以及方法名也会提供一些信息, 其次就是调试, 根据输出结果合理猜想, 再有就是总结其它文章的内容了.
AutoreleasePool 的实现机制 (二)本文章基于 objc4-725 进行测试.objc4 的代码可以在 https://opensource.apple.com/tarballs/objc4/[https://...
@太阳骑士索拉尔 看你也写了好多, 坚持那么久, 真厉害
runtime(二) SideTables本文章基于 objc4-750 进行测试.objc4 的代码可以在 https://opensource.apple.com/tarballs/objc4/ 中得到. 引用计...
@太阳骑士索拉尔 数组里存的是 BucketT 类型的数据:
typedef std::pair<KeyT, ValueT> BucketT;
是一个元祖类型, KeyT 是对象的地址(或者是空桶以及墓碑的标记 key), ValueT 才是引用计数.
runtime(二) SideTables本文章基于 objc4-750 进行测试.objc4 的代码可以在 https://opensource.apple.com/tarballs/objc4/ 中得到. 引用计...
哈希桶其实就是使用开散列算法处理冲突的哈希表, 就是当出现哈希值重复的元素时, 是使用一定的算法来计算偏移然后放入数组中(闭散列), 还是在对应位置存入链表等容器来存放(开散列). DenseMap 管理的 Buckets 是使用闭散列的哈希表, 它有自己的哈希算法, 当出现哈希值重复时, 是使用
BucketNo(哈希值) += ProbeAmt++;
BucketNo&= (NumBuckets-1);
来给哈希值增加偏移的.
另外我也是边学边写的, 可能也有不对的地方.
runtime(二) SideTables本文章基于 objc4-750 进行测试.objc4 的代码可以在 https://opensource.apple.com/tarballs/objc4/ 中得到. 引用计...
感谢分享, 我有一个问题想不太明白, 就是 NSURLconnection 里面, 有一个方法叫做 - (void)setDelegateQueue:(nullable NSOperationQueue*)queue, 感觉也是可以设置代理的队列的, 所以需不需要常驻线程的问题, 我还是有些疑问.
AFNetworking3.0后为什么不再需要常驻线程?最近在补源码阅读方面的短板,第一个选择的就是AFNetworking,一方面AF的编码思路、代码质量都属于开源框架的上乘;另一方面也可以借机温习一下网络方面的东西。AF源码解...
本文章基于 objc4-750 进行测试.objc4 的代码可以在 https://opensource.apple.com/tarballs/objc4/ 中得到. wea...
本文章基于 objc4-750 进行测试.objc4 的代码可以在 https://opensource.apple.com/tarballs/objc4/ 中得到. 引用计...
本文章基于 objc4-750 进行测试.objc4 的代码可以在 https://opensource.apple.com/tarballs/objc4/ 中得到. 类和对...
本文章基于 objc4-725 进行测试.objc4 的代码可以在 https://opensource.apple.com/tarballs/objc4/ 中得到.本篇文章...
本文章基于 objc4-725 进行测试.objc4 的代码可以在 https://opensource.apple.com/tarballs/objc4/[https://...
本文章基于 objc4-725 进行测试.objc4 的代码可以在 https://opensource.apple.com/tarballs/objc4/[https://...
本篇文章主要是通过 clang 重写 @autoreleasepool 引出 AutoreleasePoolPage 类. @autoreleasepool 的使用 在ARC...