標籤:
1、類別的作用?繼承和類別在實現中有何區別?
category 可以在不獲悉,不改變原來代碼的情況下往裡面添加新的方法,只能添加,不能刪除修改。並且如果類別和原來類中的方法產生名稱衝突,則類別將覆蓋原來的方法,因為類別具有更高的優先順序。
類別主要有3個作用:
(1)將類的實現分散到多個不同檔案或多個不同架構中。
(2)建立對私人方法的前向引用。
(3)向對象添加非正式協議。
繼承可以增加,修改或者刪除方法,並且可以增加屬性。
2、KVO 和 KVC的區別?
答案:kvc:鍵 - 值編碼是一種間接訪問對象的屬性使用字串來識別屬性,而不是通過調用存取方法,直接或通過執行個體變數訪問的機制。
很多情況下可以簡化程式碼。apple文檔其實給了一個很好的例子。
kvo:索引值觀察機制,他提供了觀察某一屬性變化的方法,極大的簡化了代碼。
具體用看到嗯哼用到過的一個地方是對於按鈕點擊變化狀態的的監控
3、代理的作用?
答案:代理的目的是改變或傳遞控制鏈。允許一個類在某些特定時刻通知到其他類,而不需要擷取到那些類的
指標。可以減少架構複雜度。
另外一點,代理可以理解為java中的回調監聽機制的一種類似。
4.通知和協議的不同之處?
答案:協議有控制鏈(has-a)的關係,通知沒有。
首先我一開始也不太明白,什麼叫控制鏈(專業術語了~)。但是簡單分析下通知和代理的行為模式,我們大致可以有自己的理解
簡單來說,通知的話,它可以一對多,一條訊息可以發送給多個訊息接受者。
代理按我們的理解,到不是直接說不能一對多,比如我們知道的明星經濟代理人,很多時候一個經濟人負責好幾個明星的事務。
只是對於不同明星間,代理的事物對象都是不一樣的,一一對應,不可能說明天要處理A明星要一個發布會,代理人發出處理髮布會的訊息後,別稱B的
發布會了。但是通知就不一樣,他只關心發出通知,而不關心多少接收到感興趣要處理。
因此控制鏈(has-a從英語單詞大致可以看出,單一擁有和可控制的對應關係。
5.MVC是什嗎?有什麼特性?為什麼在iPhone上被廣泛運用?
答案:MVC設計模式考慮三種對象:模型對象、視圖對象、和控制器對象。模型對象代表 特別的知識和專業技能,它們負責保有應用程式的資料和定義操作資料的邏輯。視圖對象知道如何顯示應用程式的模型資料,而且可能允許使用者對其進行編輯。控制 器對象是應用程式的視圖對象和模型對象之間的協調者。
6.指標與地址的區別?
區別:
1指標意味著已經有一個指標變數存在,他的值是一個地址,指標變數本身也存放在一個長度為四個位元組的地址當中,而地址概念本身並不代表有任何變數存在.
2 指標的值,如果沒有限制,通常是可以變化的,也可以指向另外一個地址.
地址表示記憶體空間的一個位置點,他是用來賦給指標的,地址本身是沒有大小概念,指標指向變數的大小,取決於地址後面存放的變數類型.
7 .HTTP協議詳解
HTTP是一個屬於應用程式層的物件導向的協議,由於其簡捷、快速的方式,適用於分布式超媒體資訊系統。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的正常化工作進行中之中。
http(超文字傳輸通訊協定 (HTTP))是一個基於請求與響應模式的、無狀態的、應用程式層的協議,常基於TCP的串連方式,HTTP1.1版本中給出一種持續串連的機制,絕大多數的Web開發,都是構建在HTTP協議之上的Web應用。
HTTP協議的主要特點可概括如下:
1.支援客戶/伺服器模式。2.簡單快速:客戶向伺服器請求服務時,只需傳送要求方法和路徑。要求方法常用的有GET、HEAD、POST。每種方法規定了客戶與伺服器聯絡的類型不同。由於HTTP協議簡單,使得HTTP伺服器的程式規模小,因而通訊速度很快。3.靈活:HTTP允許傳輸任意類型的資料對象。正在傳輸的類型由Content-Type加以標記。4.無串連:不需連線的含義是限制每次串連只處理一個請求。伺服器處理完客戶的請求,並收到客戶的應答後,即中斷連線。採用這種方式可以節省傳輸時間。5.無狀態:HTTP協議是無狀態協議。無狀態是指協議對於交易處理沒有記憶能力。缺少狀態意味著如果後續處理需要前面的資訊,則它必須重傳,這樣可能導致每次串連傳送的資料量增大。另一方面,在伺服器不需要先前資訊時它的應答就較快。
iOS開發面試題整理