程序靜態(tài)分析(Program Static Analysis)是指在不運(yùn)行代碼的方式下耐床,通過(guò)詞法分析、語(yǔ)法分析、控制流、數(shù)據(jù)流分析等技術(shù)對(duì)程序代碼進(jìn)行掃描,驗(yàn)證代碼是否滿(mǎn)足規(guī)...
程序靜態(tài)分析(Program Static Analysis)是指在不運(yùn)行代碼的方式下耐床,通過(guò)詞法分析、語(yǔ)法分析、控制流、數(shù)據(jù)流分析等技術(shù)對(duì)程序代碼進(jìn)行掃描,驗(yàn)證代碼是否滿(mǎn)足規(guī)...
OC 常用的約束框架是Masonry付呕,而swift常用的是SnapKit,不過(guò)今天就只看看Masonry跌捆。 先看個(gè)例子: 源碼 首先來(lái)看mas_makeConstraints...
最近項(xiàng)目需要添加刷新交互徽职,想著參考一下別人的源碼再封裝,然后就找了MJRefresh佩厚,然后記錄下姆钉。 原理: 在UIScrollView可滾動(dòng)區(qū)域的頂部上方或底部下方加一個(gè)UI...
最近項(xiàng)目需要添加輪播圖,想著參考一下別人的源碼再封裝抄瓦,然后就找了SDCycleScrollView潮瓶,然后記錄下。 SDCycleScrollView需要展示圖片所以依賴(lài)了SD...
最近項(xiàng)目需要添加提示控件(HUD)钙姊,想著參考一下別人的源碼再封裝毯辅,然后就找了MBProgressHUD,然后記錄下煞额。 框架使用起來(lái)很簡(jiǎn)單: 源碼 MBProgressHUD就...
概念 Mach-O是一種文件格式思恐,是mac上可執(zhí)行文件的格式。編寫(xiě)的C膊毁、C++胀莹、swift、OC婚温,最終編譯鏈接生成Mach-O可執(zhí)行文件描焰。鏈接的共用庫(kù)分為靜態(tài)庫(kù)和動(dòng)態(tài)庫(kù):靜態(tài)...
接著上篇文章(系統(tǒng)底層源碼分析(18)——objc_msgSend[http://www.reibang.com/p/e8aec5103a97])繼續(xù)說(shuō): 報(bào)錯(cuò) 之前說(shuō)到調(diào)...
當(dāng)我們調(diào)用方法時(shí),進(jìn)入?yún)R編模式可以發(fā)現(xiàn)栅螟,底層其實(shí)會(huì)調(diào)用objc_msgSend進(jìn)行快速查找荆秦,這個(gè)方法是用匯編寫(xiě)的,詳請(qǐng)我們就不看了力图,就主要看流程:1.對(duì)接受者進(jìn)行判空處理:檢...
上篇文章探究了類(lèi)的結(jié)構(gòu)[http://www.reibang.com/p/19871b14f121]步绸,其中提到cache,今天就來(lái)探究一下搪哪。 結(jié)構(gòu) 作用 從結(jié)構(gòu)可以看出ca...
類(lèi)的本質(zhì)其實(shí)也是結(jié)構(gòu)體: objc_class繼承了objc_object靡努,所以類(lèi)其實(shí)也是一個(gè)對(duì)象。類(lèi)在內(nèi)存里只存在一份, 繼承關(guān)系只存在于類(lèi)之間, 而不存在于對(duì)象之間晓折。 了...
首先簡(jiǎn)單創(chuàng)建項(xiàng)目惑朦,調(diào)用alloc并斷點(diǎn): 然后進(jìn)入?yún)R編模式運(yùn)行(Debug -> Debug Workflow -> Always Show Disassembly): 我們...
聯(lián)合體 前面提到isa關(guān)聯(lián)了類(lèi),那么isa是什么漓概?isa的本質(zhì)是聯(lián)合體: 關(guān)聯(lián) 它是怎么關(guān)聯(lián)類(lèi)的漾月,比如Person繼承NSObject,Person就需要關(guān)聯(lián)到NSObjec...
我們寫(xiě)一段代碼胃珍,然后編譯成cpp文件: 將.m文件由 OC 轉(zhuǎn) C++ 源碼方法如下:打開(kāi)終端梁肿,執(zhí)行 cd 文件所在目錄 命令,然后執(zhí)行 clang -rewrite...
上上篇:系統(tǒng)底層源碼分析(11)——alloc觅彰、init吩蔑、new[http://www.reibang.com/p/cf28dd814f79]上一篇:系統(tǒng)底層源碼分析(12...
上一篇:系統(tǒng)底層源碼分析(11)——alloc、init填抬、new[http://www.reibang.com/p/cf28dd814f79]下一篇:系統(tǒng)底層源碼分析(13...
我們知道alloc飒责、init赘娄、new就是開(kāi)辟內(nèi)存空間初始化對(duì)象,今天就來(lái)探討一下它們分別在底層干了什么宏蛉。 一. alloc 首先簡(jiǎn)單創(chuàng)建項(xiàng)目遣臼,調(diào)用alloc并斷點(diǎn): 然后進(jìn)入...
一、事件分類(lèi)事件是發(fā)送到應(yīng)用程序用于通知用戶(hù)操作的對(duì)象拾并。 在iOS中揍堰,事件可以采取多種形式:多點(diǎn)觸摸事件,運(yùn)動(dòng)事件和用于控制多媒體的事件嗅义。 這最后一種類(lèi)型的事件被稱(chēng)為遙控事件...
在了解Cabbage之前可以查看github上的文檔[https://github.com/VideoFlint/Cabbage/wiki/%E4%B8%AD%E6%96%8...
在上篇文章Graver繪制[http://www.reibang.com/p/6f0a684b8895]中个榕,我們知道了Graver把復(fù)雜的界面變成了圖片,那局部怎么交互呢芥喇?...
之前了解了CALayer和YYAsyncLayer西采,在這基礎(chǔ)上來(lái)了解一下Graver。簡(jiǎn)單來(lái)說(shuō)就是異步繪制圖片代替復(fù)雜的界面继控。 Graver 是什么Graver 是一款高效的...