iOS開發面試題大全 4

2021-07-10 14:04:14 字數 2017 閱讀 9663

簡述你對uiview、uiwindow和calayer的理解

uiview繼承於uiresponder, uiresponder繼承於nsobject,uiview可以響應使用者事件。calayer繼承於nsobject,所以calayer不能響應事件。

uiview構建介面,uiview側重於對內容的管理,calayer側重於對內容的繪製。

uiview是用來顯示內容的,可以處理使用者事件;calayer是用來繪製內容的,對內容進行動畫處理,依賴與uiview來進行顯示,不能處理使用者事件。

寫乙個完整的**,包括宣告,實現略

分析json、xml的區別?json、xml解析方式的底層是如何處理的?

json底層原理遍歷字串中的字元,最終根據各市規定的特助字元,比如{},,:號等進行區分,{}是字典,表示的時陣列,:號是字典的鍵和值的分水嶺,最總是將json資料轉化為字典。xml兩種解析方式,dom和sax,dom需要讀入整個xml文件(文件驅動),sax是事件驅動的,並不需要讀入整個文件,文件的讀入過程也就是sax的解析過程。

viewcontroller

的 didreceivememorywarning 是在什麼時候被呼叫的?預設的操作是什麼?

didreceivememorywarning在出現記憶體警告的時候執行該方法,在該方法裡面釋放掉暫時沒使用的可重用的物件。

if([self isviewloaded] == yes && self.view.window == nil)

物件導向的三大特徵,並作簡單的介紹

封裝、繼承、多型。封裝:是把客觀事物封裝成抽象的類,隱藏內部的實現,對外部提供介面。繼承:可以使用現有類的所有功能,並且在無需重新編寫原來的類的情況下對這些功能進行擴充套件。多型:不同的物件以自己的方式響應相同的的訊息的能力叫做多型,或者說父類指標指向子類物件《如uitableview的,cellforrow方法,返回值型別是uitbaleviewcell,但是你返回的cell可以是你自定義的cell,在比如多個類裡面都有同乙個方法》

重寫乙個nsstrng型別的,retain方式宣告name屬性的setter和getter方法

簡述notificationcenter、kvc、kvo、delegate?並說明它們之間的區別?

notification:觀察者模式,controller向defaultnotificationcenter新增自己的 notification,其他類註冊這個notification就可以收到通知,這些類可以在收到通知時做自己的操作(多觀察者預設隨機順序發通知給 觀察者們,而且每個觀察者都要等當前的某個觀察者的操作做完才能輪到他來操作,可以用notificationqueue的方式安排觀察者的反應順序,也 可以在新增觀察者中設定反映時間,取消觀察需要在viewdidunload 跟dealloc中都要登出)。

kvc鍵值編碼,可以直接通過字串的名字(key)來間接訪問屬性的機制,而不是通過呼叫getter和setter方法訪問。

kvo:觀測指定物件的屬性,當指定物件的屬性更改之後會通知相應的觀察者。

delegate:一對一,delegate遵循某個協議並實現協議宣告的方法。

what is lazy loading?

在使用的時候才去初始化,比如uitableviewcell的imageview屬性,懶載入物件的建立是在getter方法裡面進行建立的。

什麼是protocol?什麼是**?寫乙個委託的inte***ce?委託的property宣告用什麼屬性?為什麼?

協議提供了一組方法,但是並不負責實現,如果乙個類遵循了某個協議,並且實現了協議裡面的方法,那麼我們稱這個類就是遵循了某個協議的**。屬性的宣告使用assign,防止出現迴圈引用的問題。

分別描述類別(categories)和延展(extensions)是什麼?以及兩者的區別?繼承和類別在實現中有何區別?為什麼category只能為物件新增方法,卻不能新增成員變數?

category類目:在不知道原始碼的情況下為乙個類擴充套件方法,extension:為乙個類宣告私有方法和變數。

繼承是建立了乙個新的類,而類別只是對類的乙個擴充套件,還是之前的類。

類目的作用就是為已知的類新增方法。

iOS開發面試題 更新中

在ios開發面試中,經常會碰到各類的面試題,包括c oc以及ui方面的一些問題彙總,下面的問題也是從網上copy過來的答案 c語言 1 程序同步的幾種方法,各自的優缺點?程序 執行緒間同步機制,臨界區 互斥區 事件 訊號量四種方式 臨界區 critical section 互斥量 mutex 事件 ...

前端開發面試題

基礎題 1.談一談你對bootstrap的柵格布局的理解。2.談一談你對mvvm的理解。3.es6的展開運算子有使用過嗎?有什麼用處?4.let和var const的區別是什麼?5.最近有了解前端的發展嗎?有沒有學習什麼最新的前端技術?6.sessionstorage localstorage和co...

ios高階工程師開發面試題

不管對於招聘和應聘來說,面試都是很重要的乙個環節,特別對於開發者來說,面試中的技術問題環節不僅是企業對應聘者技能和積累的考察,也是乙個開發者自我檢驗的好機會。對於ios和mac開發來說,因為本事還算比較新,企業對於這方面的開發者需求也比較大,所以面試時的要求可能並不是很高,一般能知道一些cocoa和...