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