最近發(fā)現(xiàn)在iOS 13的系統(tǒng)下使用kvc獲取一些控件的私有成員出現(xiàn)崩潰碟摆,發(fā)現(xiàn)是蘋(píng)果在對(duì)應(yīng)的控件類(lèi)中重寫(xiě)了kvc相關(guān)方法,判斷key名來(lái)禁止一些成...
FBRetainCycleDetector中獲取block強(qiáng)引用的對(duì)象實(shí)現(xiàn)方式 在我的上一篇文章中介紹了如何獲取block捕獲的對(duì)象,思路是通過(guò)...
這篇文章是參考了歐陽(yáng)大哥的實(shí)現(xiàn)并在此基礎(chǔ)上進(jìn)行了一些擴(kuò)展,原文鏈接在此一種查看Block中引用的所有外部對(duì)象的實(shí)現(xiàn)方法。想要詳細(xì)了解如何解析bl...
最近寫(xiě)了一個(gè)小工具庫(kù),分類(lèi)中添加的屬性自動(dòng)生成setter和getter并綁定ivar。平時(shí)我們要想實(shí)現(xiàn)給分類(lèi)添加屬性贡羔,需要用到runtime的...
前言 fishhook是fackbook開(kāi)源的一個(gè)用來(lái)hook c函數(shù)的庫(kù)。在iOS開(kāi)發(fā)中我們一般都是對(duì)OC方法進(jìn)行hook个初,這是因?yàn)镺C的動(dòng)態(tài)...
RSSwizzle源碼解析 前言 RSSwizzle是一個(gè)輕量的線程安全的方法hook的庫(kù)乖寒,平常我們僅僅通過(guò)runtime的method_exc...
簡(jiǎn)介 Aspects是一個(gè)輕量的面向切面編程(AOP)的第三方庫(kù),面向切面編程簡(jiǎn)單來(lái)說(shuō),就是在原來(lái)的業(yè)務(wù)流程之中的某個(gè)位置插入額外的功能院溺,不影響...
前言 我們知道一個(gè)對(duì)象即將釋放的時(shí)候會(huì)進(jìn)入到dealloc方法中楣嘁,通常也是通過(guò)dealloc是否回調(diào)來(lái)檢測(cè)循環(huán)引用。我一直對(duì)dealloc內(nèi)部做...
一珍逸、定義一個(gè)Block 在上面的代碼中定義了一個(gè)無(wú)返回值無(wú)參數(shù)的block逐虚,并定義了一個(gè)全局變量globalStr,兩個(gè)局部變量str谆膳、a以及一...