iOS 面試題

來源:互聯網
上載者:User

標籤:c中   zed   函數   特性   構造   cto   簽名   calayer   tla   

1、CALayer有哪些子類?用途? 

2、有哪些常見的 Crash 情境?

3、@protocol 和 category 中如何使用 @property

 

4、什麼是 method swizzling?

5、如何讓自己的類用 copy 修飾符?如何重寫帶 copy 關鍵字的 setter?

 

6、iOS簽名機制大概是怎樣的?

 

 

 

答案:

 

1、CALayer有哪些子類?用途? 

CAShaperLayer

CAGradientLayer: 顏色過渡

CAEmitteryLayer :粒子效果

CATransformLayer:給圖層加景深效果,構造一個層級分明的3D結構。

CAReplicatorLayer:圖層複製

CAScrollLayer

CATiledLayer:為節省記憶體渲染開銷提供了途徑

CATextLayer:

CAEAGLLayer:

AVPlayerLayer: 播放視頻

 

2、有哪些常見的 Crash 情境?

數組越界

訪問了殭屍對象。已經被釋放掉的對象

訪問野指標. EXC_BAD_ACCESS.

訪問了不存在的方法. unrecognized selector 

多線程並行作業

在定時器下一次回調前將定時器釋放

3、@protocol 和 category 中如何使用 @property

 objc_setAssociatedObject/ objc_setAssociatedObject

4、什麼是 method swizzling?

簡單說就是進行方法交換

在Objective-C中調用一個方法,其實是向一個對象發送訊息,尋找訊息的唯一依據是selector的名字。利用Objective-C的動態特性,可以實現在運行時偷換selector對應的方法實現,達到給方法掛鈎的目的

每個類都有一個方法列表,存放著方法的名字和方法實現的映射關係,selector的本質其實就是方法名,IMP有點類似函數指標,指向具體的Method實現,通過selector就可以找到對應的IMP。

selector --> 對應的IMP

交換方法的幾種實現方式

利用 method_exchangeImplementations 交換兩個方法的實現

利用 class_replaceMethod 替換方法的實現

利用 method_setImplementation 來直接設定某個方法的IMP。

 

5、如何讓自己的類用 copy 修飾符?如何重寫帶 copy 關鍵字的 setter?

 

6、iOS簽名機制大概是怎樣的? 

 5、如何讓自己的類用 copy 修飾符?如何重寫帶 copy 關鍵字的 setter?

若想令自己所寫的對象具有拷貝功能,則需實現NSCopying協議。如果自訂的對象分為可變版本與不可變版本,那麼就要同時實現NSCopyiog與NSMutableCopying協議。

6、

https://www.jianshu.com/p/ad29445eb91c

iOS 面試題

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.