iOS object-c 面試題

來源:互聯網
上載者:User

面試了幾輪了,總結下面試中會被經常提問到的問題:

1.iPad開發與iPhone開發有什麼不同?

答:開發iPad和iPhone應用使用的是相同的SDK,它們之間的區別主要體現在裝置硬體和UI操作上。(1)裝置硬體:由於iPad不具備電話功能,iPad1也沒有相機,所以相關的特性如電話、SMS等無法使用。(2)UI操作:由於iPad螢幕大小為9.7英寸,而iPhone的螢幕是3.5英寸,這就決定了兩者操作方式的不同。有些控制項,如UIPopoverController, UISliptViewController 只能在iPad中使用,而不能在iPhone中使用;而且當需要presentModalViewController時,Window
presentation style 只對iPad有效;除此之外,iPad產品開發中還需針對iPad大螢幕考慮加入多指手勢以增加使用者體驗。

2.Objective-C與C、C+++之間的聯絡和區別?

答:Objective-C和C++都是C的物件導向的超集。

Object與C++的區別主要點:Objective-C是完全動態,支援在運行時動態類型決議(dynamic typing),動態綁定(dynamic binding)以及動態裝載(dynamic loading);而C++是部分動態,編譯時間靜態繫結,通過嵌入類(多重繼承)和虛函數(虛表)來類比實現。
Objective-C 在語言層次上支援動態訊息轉寄,其訊息發送文法為 [object function]; 而且C++ 為 object->function()。 兩者的語義也不同,在 Objective-C 裡是說發送訊息到一個對象上,至於這個對象能不能響應訊息以及是響應還是轉寄訊息都不會 crash; 而在 C++ 裡是說對象進行了某個操作,如果對象沒有這個操作的話,要麼編譯會報錯(靜態繫結),要麼程式會 crash 掉的(動態綁定)。

另可以參考:(羅朝輝Blog)

http://www.cppblog.com/kesalin/archive/2010/12/26/compare_objective_c_and_c_plus_plus.html

3.#include與#import的區別;#import與@class的區別。

#import指令是Object-C針對#include的改進版本,#import確保引用的檔案只會被引用一次,這樣你就不會陷入遞迴包含的問題中。

#import與@class二者的區別在於:

  1. #import會鏈入該標頭檔的全部資訊,包括實體變數和方法等;而@class只是告訴編譯器,其後面聲明的名稱是類的名稱,至於這些類是如何定義的,暫時不用考慮。
  2. 在標頭檔中, 一般只需要知道被引用的類的名稱就可以了。 不需要知道其內部的實體變數和方法,所以在標頭檔中一般使用@class來聲明這個名稱是類的名稱。 而在實作類別裡面,因為會用到這個引用類的內部的實體變數和方法,所以需要使用#import來包含這個被引用類的標頭檔。
  3. 在編譯效率方面考慮,如果你有100個標頭檔都#import了同一個標頭檔,或者這些檔案是依次引用的,如A–>B, B–>C, C–>D這樣的參考關聯性。當最開始的那個標頭檔有變化的話,後面所有引用它的類都需要重新編譯,如果你的類有很多的話,這將耗費大量的時間。而是用@class則不會。
  4. 如果有循環相依性關係,如:A–>B, B–>A這樣的相互依賴關係,如果使用#import來相互包含,那麼就會出現編譯錯誤,如果使用@class在兩個類的標頭檔中相互聲明,則不會有編譯錯誤出現。所以,一般來說,@class是放在interface中的,只是為了在interface中引用這個類,把這個類作為一個類型來用的。 在實現這個介面的實作類別中,如果需要引用這個類的實體變數或者方法之類的,還是需要import在@class中聲明的類進來.

4.loadView 和 viewDidLoad 的區別

5.簡單介紹Core Data

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.