首先是源碼, 包括注釋, 有時候類名和變量名以及方法名也會提供一些信息, 其次就是調試, 根據(jù)輸出結果合理猜想, 再有就是總結其它文章的內容了.
AutoreleasePool 的實現(xiàn)機制 (二)本文章基于 objc4-725 進行測試.objc4 的代碼可以在 https://opensource.apple.com/tarballs/objc4/[https://...
首先是源碼, 包括注釋, 有時候類名和變量名以及方法名也會提供一些信息, 其次就是調試, 根據(jù)輸出結果合理猜想, 再有就是總結其它文章的內容了.
AutoreleasePool 的實現(xiàn)機制 (二)本文章基于 objc4-725 進行測試.objc4 的代碼可以在 https://opensource.apple.com/tarballs/objc4/[https://...
@太陽騎士索拉爾 看你也寫了好多, 堅持那么久, 真厲害
runtime(二) SideTables本文章基于 objc4-750 進行測試.objc4 的代碼可以在 https://opensource.apple.com/tarballs/objc4/ 中得到. 引用計...
@太陽騎士索拉爾 數(shù)組里存的是 BucketT 類型的數(shù)據(jù):
typedef std::pair<KeyT, ValueT> BucketT;
是一個元祖類型, KeyT 是對象的地址(或者是空桶以及墓碑的標記 key), ValueT 才是引用計數(shù).
runtime(二) SideTables本文章基于 objc4-750 進行測試.objc4 的代碼可以在 https://opensource.apple.com/tarballs/objc4/ 中得到. 引用計...
哈希桶其實就是使用開散列算法處理沖突的哈希表, 就是當出現(xiàn)哈希值重復的元素時, 是使用一定的算法來計算偏移然后放入數(shù)組中(閉散列), 還是在對應位置存入鏈表等容器來存放(開散列). DenseMap 管理的 Buckets 是使用閉散列的哈希表, 它有自己的哈希算法, 當出現(xiàn)哈希值重復時, 是使用
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的編碼思路、代碼質量都屬于開源框架的上乘;另一方面也可以借機溫習一下網(wǎng)絡方面的東西。AF源碼解...