原创 第4章:Objective-C語言相關技術特性——三、關聯對象

1、是否能爲分類添加“成員變量”? 通過關聯對象可以爲分類添加成員變量。 2、關聯對象爲分類添加的“成員變量”放在了哪裏? 關聯對象由AssociationsManager管理並在AssociationsHashMap中存儲。所有對象的關

原创 第13章:算法

一、字符串反轉 void char_reverse(char* cha) { // 指向第一個字符 char* begin = cha; // 指向最後一個字符 char* end = cha

原创 第12章:架構/框架

零、概述      架構/框架問題主要用於考察中高級、資深工程師。     1、爲什麼要在APP中引入框架?他有什麼好處呢? 1)、模塊化 2)、分層 3)、解耦 4)、降低代碼重合度   一、圖片緩存     1、怎麼設計一個圖片緩存框

原创 第7章:Block的使用——一、Block介紹;二、Block的本質;三、Block截獲變量;四、__block修飾符;五、Block內存管理;六、Block的循環引用

一、Block介紹      1、Block是將函數及其執行上下文封裝起來的對象。 二、Block的本質      Block是如何將函數及其上下文封裝起來的呢?下面通過源碼說明。我們寫一個Block的定義及調用方法,然後使用clang

原创 第6章:內存管理——一、內存管理包含的內容;二、內存佈局;三、內存管理方案

一、內存管理包含的內容      1、內存佈局      2、內存管理方案      3、數據結構      4、ARC&MRC      5、引用計數      6、弱引用      7、自動釋放池      8、循環引用   二、內存

原创 第10章:網絡——一、HTTP協議;二、HTTPS與網絡安全;三、TCP/UDP;四、DNS解析;五、Session/Cookie

一、HTTP協議      1、你是怎麼理解HTTP的?HTTP具體包含哪些內容? HTTP是超文本傳輸協議,主要包含三部分內容:請求/響應報文,鏈接建立流程,HTTP的特點。      2、請求/響應報文 請求報文由請求行、header

原创 第9章:RunLoop面試問題

一、概念      1、什麼是RunLoop? RunLoop是通過內部維護的事件循環來對事件/消息進行管理的一個對象。      2、什麼是事件循環? 沒有消息需要處理時,休眠以避免資源佔用,此時當前線程的控制權由用戶態切換到內核態;有

原创 第11章:設計模式

一、六大設計原則      1、單一職責原則 一個類只負責一件事      2、依賴倒置原則 抽象不應該依賴於具體實現,具體實現可以依賴於抽象。      3、開放-關閉原則 對修改關閉,對擴展開放。比如常見的就是可繼承,不可修改。  

原创 第8章:多線程面試問題——一、GCD;二、NSOperation;三、NSThread;四、多線程與鎖

一、GCD      1、同步/異步 和 串行/併發 1)、GCD調用的四種組合     dispatch_sync(serial_queue,^{…}); 同步調用串行隊列     dispatch_async(serial_queue

原创 第4章:Objective-C語言相關技術特性——二、分類

1、用分類做了哪些事情       1)、聲明私有方法       2)、分解體積龐大的類文件       3)、把Framework的私有方法公開化 2、分類的特點(與擴展的區別)       1)、運行時決議:運行之前分類的方法並沒有

原创 第4章:Objective-C語言相關技術特性——四、擴展;五、代理;六、通知;七、KVO;八、KVC;九、屬性關鍵字

四、擴展       1、一般用擴展做什麼? 1)、聲明私有屬性 2)、聲明私有方法 3)、聲明私有成員變量       2、擴展的特點(與類別的區別) 1)、編譯時決議 2)、只以聲明的形式存在,多數情況下寄生於宿主類的.m文件中 3)

原创 第三章UI視圖——六、UI繪製原理&異步繪製==屬於CPU的優化部分

這是高級考察點。 1、UIview繪製原理步驟如下:       其中view.layer調用setNeedsDisplay方法之後只是給當前layer打上了一個髒標記,然後在當前runloop將要結束時調用layer的dispaly方

原创 第5章:運行時相關技術特性——二、對象、類對象與元類對象;三、消息傳遞

二、對象、類對象與元類對象      1、類對象和元類對象是什麼?兩者之間有什麼區別? 類對象存儲實例方法列表等信息;元類對象存儲類方法列表等信息。類對象通過isa指針可以找到元類對象。      2、類對象調用類方法時如果元類及祖先元

原创 第5章:運行時相關技術特性——六、動態添加方法;七、動態解析方法

六、動態添加方法      主要用到class_addMethod(要爲那個類添加方法,要添加方法的SEL,方法實現,Types);,如class_addMethod(self,@selector(test),testImp,”v@:”)

原创 第三章UI視圖——七、離屏渲染==屬於GPU的優化部分

1)、On-Screen Rendering       意爲當前屏幕渲染,指的是GPU的渲染操作是在當前用於顯示的屏幕緩衝區中進行 2)、Off-Screen Rendering       意爲離屏渲染,指的是GPU在當前屏幕緩衝區以