結(jié)構(gòu)模型 介紹下runtime的內(nèi)存模型(isa、對(duì)象、類(lèi)、metaclass、結(jié)構(gòu)體的存儲(chǔ)信息等) 為什么要設(shè)計(jì)metaclass元類(lèi)保存了類(lèi)方法的列表 class_cop...
結(jié)構(gòu)模型 介紹下runtime的內(nèi)存模型(isa、對(duì)象、類(lèi)、metaclass、結(jié)構(gòu)體的存儲(chǔ)信息等) 為什么要設(shè)計(jì)metaclass元類(lèi)保存了類(lèi)方法的列表 class_cop...
寫(xiě)不好的原因 1、太多cell一個(gè)聊天的界面可能有很多不同的cell,基礎(chǔ)的可能就有 文字 圖片 語(yǔ)音 視頻 地理位置 視頻 時(shí)間 跟業(yè)務(wù)綁定的就更多了,紅包、系統(tǒng)提示語(yǔ)、分...
手機(jī)在使用過(guò)程中有時(shí)需要實(shí)時(shí)響應(yīng),有時(shí)又不需要。runloop的狀態(tài)就是為了調(diào)節(jié)這些切換。比如滑動(dòng)模式下,會(huì)把沒(méi)有加入到此模式下的定時(shí)器跳過(guò),這樣響應(yīng)會(huì)很快。
多路復(fù)用 HTTP2.0使用了多路復(fù)用的技術(shù),做到同一個(gè)連接并發(fā)處理多個(gè)請(qǐng)求,而且并發(fā)請(qǐng)求的數(shù)量比HTTP1.1大了好幾個(gè)數(shù)量級(jí)。 當(dāng)然HTTP1.1也可以多建立幾個(gè)TCP連...
架構(gòu):簡(jiǎn)單的說(shuō)架構(gòu)就是一個(gè)藍(lán)圖,是一種設(shè)計(jì)方案,將客戶(hù)的不同需求抽象成為抽象組件,并且能夠描述這些抽象組件之間的通信和調(diào)用。 框架:軟件框架是項(xiàng)目軟件開(kāi)發(fā)過(guò)程中提取特定領(lǐng)域軟...
重復(fù)代碼的提煉冗長(zhǎng)方法的分割嵌套條件分支的優(yōu)化去掉一次性的臨時(shí)變量消除過(guò)長(zhǎng)參數(shù)列表提取類(lèi)或繼承體系中的常量讓類(lèi)提供應(yīng)該提供的方法拆分冗長(zhǎng)的類(lèi)提取繼承體系中重復(fù)的屬性與方法到父...
原則一:開(kāi)閉原則(Open Close Principle)原則二:?jiǎn)我宦氊?zé)原則(Single Responsibility Principle)原則三:依賴(lài)倒置原則(Dep...
主要還是數(shù)據(jù)流向的不同。 https://blog.csdn.net/victoryzn/article/details/78392128http://www.ruanyif...
全局: const,只讀的全局變量,其值不可修改. static,規(guī)定此全局變量只在當(dāng)前模塊(文件)中可見(jiàn). static const,既是只讀的,又是只在當(dāng)前模塊中可見(jiàn)的....
解決函數(shù)調(diào)用效率的問(wèn)題:函數(shù)之間調(diào)用,是內(nèi)存地址之間的調(diào)用,當(dāng)函數(shù)調(diào)用完畢之后還會(huì)返回原來(lái)函數(shù)執(zhí)行的地址。函數(shù)調(diào)用有時(shí)間開(kāi)銷(xiāo),內(nèi)聯(lián)函數(shù)就是為了解決這一問(wèn)題。不用inline修...
中間人攻擊 HTTPS抓包的原理還是挺簡(jiǎn)單的,簡(jiǎn)單來(lái)說(shuō),就是Charles作為“中間人代理”,拿到了 服務(wù)器證書(shū)公鑰 和 HTTPS連接的對(duì)稱(chēng)密鑰,前提是客戶(hù)端選擇信任并安裝...
1) 對(duì)稱(chēng)加密加密與解密使用的是同樣的密鑰,所以速度快,但由于需要將密鑰在網(wǎng)絡(luò)傳輸,所以安全性不高。(2) 非對(duì)稱(chēng)加密使用了一對(duì)密鑰,公鑰與私鑰,所以安全性高,但加密與解密速...
為了防止已失效的連接請(qǐng)求報(bào)文段突然又傳送到了服務(wù)端,因而產(chǎn)生錯(cuò)誤。client發(fā)出的第一個(gè)連接請(qǐng)求報(bào)文段并沒(méi)有丟失,而是在某個(gè)網(wǎng)絡(luò)結(jié)點(diǎn)長(zhǎng)時(shí)間的滯留了,以致延誤到連接釋放以后的...
1、優(yōu)化DNS解析和緩存2、網(wǎng)絡(luò)質(zhì)量檢測(cè)(根據(jù)網(wǎng)絡(luò)質(zhì)量來(lái)改變策略)3、提供網(wǎng)絡(luò)服務(wù)優(yōu)先級(jí)和依賴(lài)機(jī)制4、提供網(wǎng)絡(luò)服務(wù)重發(fā)機(jī)制5、減少數(shù)據(jù)傳輸量6、優(yōu)化海外網(wǎng)絡(luò)性能 實(shí)踐每個(gè)網(wǎng)絡(luò)...
分cpu卡和gpu卡頓。 主線程耗時(shí)操作線程爆炸滑動(dòng)頁(yè)面渲染卡頓(離屏渲染)圖像渲染解碼 查看xcode的cpu占用。使用instrument 查看耗時(shí)代碼。查看渲染耗時(shí)問(wèn)題。
1、NSInvalidArgumentException 異常向容器加入nil,引起的崩潰。hook容器添加方法,進(jìn)行判斷。https://github.com/jasenh...
無(wú)痕埋點(diǎn)就是記錄所有的事件,需要的時(shí)候去查詢(xún)??煞譃閮煞N 用戶(hù)點(diǎn)擊事件 button 手勢(shì)的點(diǎn)擊,這個(gè)可以hook相關(guān)的方法,addtarget 等,去埋點(diǎn),通過(guò)view獲取...
App啟動(dòng)過(guò)程 解析Info.plist加載相關(guān)信息,例如如閃屏沙箱建立、權(quán)限檢查 Mach-O加載 如果是胖二進(jìn)制文件,尋找合適當(dāng)前CPU類(lèi)別的部分 加載所有依賴(lài)的Mach...