前言 這是一道很有意思的題,題目來自群友,據說原題出自sunny。自以為是的解答這道題后,群友拋出一個新的問題,發現之前的解釋行不通,遂有此文。 0x00 Code 你可能見...

前言 這是一道很有意思的題,題目來自群友,據說原題出自sunny。自以為是的解答這道題后,群友拋出一個新的問題,發現之前的解釋行不通,遂有此文。 0x00 Code 你可能見...
前言 你知道objc_msgSendSuper2(注意,不是objc_msgSendSuper)嗎?如果不知道,這篇小文有必要看一下。 0x00 code 通過clang重寫...
之前寫過一篇文章 Objective-C對象內存分布是怎樣確定的,作為姊妹篇,兩者配合食用口味更佳。 0x00 API 在runtime.h中可以找到如下接口: 這 6個函數...
話不多說,直接看代碼 0x00 code 看到輸出結果后直接傻眼,腦子里迅速產生了幾個疑問: 為什么輸出的兩個值不一樣? 2是哪來的? 2后面是怎么變成1的? 0x01 de...
全文速覽 引子 activities與order的含義 _wrapRunLoopWithAutoreleasePoolHandler反匯編分析 autorelease在run...
對于一個類的實例變量來說,我們常說他的內存分布是isa + ivars。為什么內存是這樣分布的?他是怎樣確定的? 本文采用源碼為當前最新:objc4-756.2與libmal...
TaggedPointer是蘋果推出的一種通過指針來存儲少量數據的技術,可以有效避免內存浪費。 本文所用源碼為objc4-756.2,macOS版本為10.15.2 Tagg...
fishhook,facebook開源的一個可以動態綁定Mach-O符號表的庫。在程序啟動時與運行時會通過dyld來綁定符號表(這里有非懶加載與懶加載之分),而fishhoo...
KVO,蘋果的一種鍵值監聽實現技術。Key-Value Observing Implementation Details中有如下描述: Automatic key-value...
Swift支持協議方法的默認實現,而Objective-C不支持,突然想到多年前sunnyxx開源的 ProtocolKit ,順手翻翻源碼。 @defs __COUNTER...
前言 題目來自于https://kobes.ca/ctest ,共16題。 題目 解析:理解setjmp與longjmp后,本題很容易解答。首次調用setjmp時,會標記jm...
本文概要 指針的種類及區別 不同指針間的相互轉換及常用方法 各種類型的指針獲取及應用 more than that 指針簡介 打開開發文檔,可以從Swift-->Swift ...
前言 Swift終于穩定了,抽空看了遍語法,寫個Demo找手感。項目中經常會出現無數據或者無網頁面需要適配,so... JKPlaceholderView來了。 表現 看點 ...
前言 題目來自JavaScript Puzzlers,涉及的知識點很廣,本文的解題過程盡量做到詳細易懂。由于文章篇幅較長,推薦先馬后看,相信一定可以在文章中找到不熟或者概念模...
前言 本文為學習過程中的this小節,作為一名JavaScript自學未成才的編程人員,還沒從“原型繼承”中回過神來(可以參考筆者上一篇文章《大話JavaScript對象》)...
前言 寫C++、Java、Objective-C等語言的猿人們,在接觸JavaScript時一定被__proto__和prototype搞得暈頭轉向。筆者正在自學JavaSc...