總結一下在金山面試ios開發時問到的問題

總結一下在金山面試ios開發時問到的問題

前幾天去了金山的wps部門面試ios的開發實習生,雖然好像是勉強過了二面,但好像還是gg了,總結一下面試時問到的問題

1.如何在不改動項目原有的代碼前提下,使項目中每個Controller的viewDidLoad方法都輸出一句話?(不能在原有的文件添加刪除或改掉代碼,但可以新建文件寫代碼)

2.除了使用view.layer.cornerRadius來設置圓角以外,還有什麼其它方法設置圓角,使用view.layer.cornerRadius有什麼壞處?

3.view和layer有什麼區別?

4.block有幾種類型?分別是?

5.block中如何防止循環引用?為什麼在block中要加入strong typeof?

6.利用cocoapods管理第三方庫,是如何實現讀取pod工程中的文件的?

7.說說arc的工作原理,他是如何管理對象或變數的釋放?

8.說說ios中多線程有哪幾種實現方法?談談對gcd的理解?

我就記得這麼多了,有些問題忘了,還有些是我的項目中具體的問題。

答案:

1.先創建一個新的文件實現一個方法輸出一句話,然後利用runtime機制把uiview中的viewDidLoad方法與新建的方法進行交換,具體實現看這篇文章

2.總共3種方法

1.通過設置layer.cornerRadius 2.使用貝塞爾曲線UIBezierPath和Core Graphics框架畫出一個圓角 3.使用CAShapeLayer和UIBezierPath設置圓角

具體實現看這篇文章

3.主要這幾點

1.每個 UIView 內部都有一個 CALayer 在背後提供內容的繪製和顯示,並且 UIView 的尺寸樣式都由內部的 Layer 所提供。兩者都有樹狀層級結構,layer 內部有 SubLayers,View 內部有 SubViews.但是 Layer 比 View 多了個AnchorPoint 2.在 View顯示的時候,UIView 做為 Layer 的 CALayerDelegate,View 的顯示內容由內部的 CALayer 的 display 3.CALayer 是默認修改屬性支持隱式動畫的,在給 UIView 的 Layer 做動畫的時候,View 作為 Layer 的代理,Layer 通過 actionForLayer:forKey:向 View請求相應的 action(動畫行為) 4.layer 內部維護著三分 layer tree,分別是 presentLayer Tree(動畫樹),modeLayer Tree(模型樹), Render Tree (渲染樹),在做 iOS動畫的時候,我們修改動畫的屬性,在動畫的其實是 Layer 的 presentLayer的屬性值,而最終展示在界面上的其實是提供 View的modelLayer 5.兩者最明顯的區別是 View可以接受並處理事件,而 Layer 不可以

(最重點)兩者最明顯的區別是 View可以接受並處理事件,而 Layer 不可以

具體看這裡

4. 三種

1._NSConcreteGlobalBlock 全局靜態 2._NSConcreteStackBlock 保存在棧中,出函數作用域就銷毀 3._NSConcreteMallocBlock 保存在堆中,retainCount == 0銷毀

5.

在調用block前使用weak typeof (self) weakSelf = self;即可(即用一個弱指針指向self,這樣的話在block中調用一次weakSelf這個弱指針就會自動釋放)

當在block中要多次調用self時就使用 strong __typeof(weakself)strongSelf = weakself;(即再用一個強指針指向weakself這個弱指針,防止調用一次後就馬上釋放)

6.利用workspace,具體看這篇文章

7.Cocoa採用了引用計數(retain count)機制,當一個對象的retain count=0時,在Mrc(即非arc)中時需要手動添加 [xxx release] ; 這樣一句代碼釋放對象,但arc中這個系統已經默認幫你加上了,只要retain count=0就自動調用,當然過程還要複雜點,具體體看這篇文章

8. 四種(當時答了三種orz)

1.Pthreads2.NSThread3.GCD4.NSOperation & NSOperationQueue

關於gcd的話我當時大概講了一下隊列同步非同步這些,當時也講得並不完整,畢竟有些東西緊張起來還是忘了…………

具體的話看這裡

雖然這次面試並不成功,但至少吸取了點經驗吧~

另外…………二本的我求一份ios或unity的實習orz……謝謝orz

推薦閱讀:

金山雲IaaS服務模型和應用
金山雲又雙叒融資了 公有雲前三甲再無變數?

TAG:iOS | 面試 | 金山軟體 |