iOS開發面試題整理(二)

8 類別的做用?繼承和類別在實現中有何區別?

答案:category 能夠在不獲悉,不改變原來代碼的狀況下往裏面添加新的方法,只能添加,不能刪除修改。java

而且若是類別和原來類中的方法產生名稱衝突,則類別將覆蓋原來的方法,由於類別具備更高的優先級。
類別主要有3個做用:設計模式

(1)將類的實現分散到多個不一樣文件或多個不一樣框架中。服務器

(2)建立對私有方法的前向引用。app

(3)向對象添加非正式協議。
繼承能夠增長,修改或者刪除方法,而且能夠增長屬性。框架

9. KVO 和 KVC的區別?

答案:kvc:鍵 - 值編碼是一種間接訪問對象的屬性使用字符串來標識屬性,而不是經過調用存取方法,直接或經過實例變量訪問的機制。分佈式

不少狀況下能夠簡化程序代碼。apple文檔其實給了一個很好的例子。編碼

kvo:鍵值觀察機制,他提供了觀察某一屬性變化的方法,極大的簡化了代碼。設計

10.代理的做用?

答案:代理的目的是改變或傳遞控制鏈。容許一個類在某些特定時刻通知到其餘類,而不須要獲取到那些類的
指針。能夠減小框架複雜度。代理

另一點,代理能夠理解爲java中的回調監聽機制的一種相似。指針

11.通知和協議的不一樣之處?

答案:協議有控制鏈(has-a)的關係,通知沒有。

首先我一開始也不太明白,什麼叫控制鏈(專業術語了~)。可是簡單分析下通知和代理的行爲模式,咱們大體能夠有本身的理解

簡單來講,通知的話,它能夠一對多,一條消息能夠發送給多個消息接受者。

代理按咱們的理解,到不是直接說不能一對多,好比咱們知道的明星經濟代理人,不少時候一個經濟人負責好幾個明星的事務。

只是對於不一樣明星間,代理的事物對象都是不同的,一一對應,不可能說明天要處理A明星要一個發佈會,代理人發出處理髮佈會的消息後,別稱B的
發佈會了。可是通知就不同,他只關心發出通知,而不關心多少接收到感興趣要處理。

所以控制鏈(has-a從英語單詞大體能夠看出,單一擁有和可控制的對應關係。

12.MVC是什麼?有什麼特性?爲何在iPhone上被普遍運用?

答案:MVC設計模式考慮三種對象:模型對象、視圖對象、和控制器對象。模型對象表明 特別的知識和專業技能,它們負責保有應用程序的數據和定義操做數據的邏輯。視圖對象知道如何顯示應用程序的模型數據,並且可能容許用戶對其進行編輯。控制 器對象是應用程序的視圖對象和模型對象之間的協調者。

13.指針與地址的區別?

區別:

1指針意味着已經有一個指針變量存在,他的值是一個地址,指針變量自己也存放在一個長度爲四個字節的地址當中,而地址概念自己並不表明有任何變量存在.

2 指針的值,若是沒有限制,一般是能夠變化的,也能夠指向另一個地址.

地址表示內存空間的一個位置點,他是用來賦給指針的,地址自己是沒有大小概念,指針指向變量的大小,取決於地址後面存放的變量類型.

14 .HTTP協議詳解

HTTP是一個屬於應用層的面向對象的協議,因爲其簡捷、快速的方式,適用於分佈式超媒體信息系統。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的規範化工做正在進行之中。

http(超文本傳輸協議)是一個基於請求與響應模式的、無狀態的、應用層的協議,常基於TCP的鏈接方式,HTTP1.1版本中給出一種持續鏈接的機制,絕大多數的Web開發,都是構建在HTTP協議之上的Web應用。

HTTP協議的主要特色可歸納以下:

1.支持客戶/服務器模式。
2.簡單快速:客戶向服務器請求服務時,只需傳送請求方法和路徑。請求方法經常使用的有GET、HEAD、POST。每種方法規定了客戶與服務器聯繫的類型不一樣。因爲HTTP協議簡單,使得HTTP服務器的程序規模小,於是通訊速度很快。
3.靈活:HTTP容許傳輸任意類型的數據對象。正在傳輸的類型由Content-Type加以標記。
4.無鏈接:無鏈接的含義是限制每次鏈接只處理一個請求。服務器處理完客戶的請求,並收到客戶的應答後,即斷開鏈接。採用這種方式能夠節省傳輸時間。
5.無狀態:HTTP協議是無狀態協議。無狀態是指協議對於事務處理沒有記憶能力。缺乏狀態意味着若是後續處理須要前面的信息,則它必須重傳,這樣可能致使每次鏈接傳送的數據量增大。另外一方面,在服務器不須要先前信息時它的應答就較快。
相關文章
相關標籤/搜索