ios開發工程師常見面試題匯總

來源:互聯網
上載者:User


經過本人最近的面試和對面試資料的一些匯總,準備記錄這些面試題,以便ios開發工程師找工作複習之用,本人希望有面試經驗的同學能和我同時完成這個模組,先出面試題,然後會放出答案。

1.Object-c的類可以多重繼承嗎?可以實現多個介面嗎?Category是什嗎?重寫一個類的方式用繼承好還是分類好?為什嗎?

2.#import 跟#include 又什麼區別,@class呢; #import<> 跟 #import”"又什麼區別?

3.屬性readwrite,readonly,assign,retain,copy,nonatomic
各是什麼作用,在那種情況下用?

4.id 聲明的對象有什麼特性?

5.MVC是什嗎?有什麼特性?為什麼在iPhone上被廣泛運用?

6.對於語句NSString* testObject = [[NSData alloc] init];testObject 在編譯時間和運行時分別時什麼類型的對象?

7.什麼是安全釋放?

8.為什麼有些4.0專屬的objective-c 函數在3.1上運行時會報錯.而4.0專屬的類在3.1上分配記憶體時不會報錯?分配的結果是什嗎?

9.為什麼4.0專屬的c函數在3.1的機器上運行不會報錯(在沒有調用的情況下?)而4.0專屬的類名在3.1的機器上一運行就報錯?

10.常見的object-c的資料類型有那些, 和 c 的 基礎資料型別 (Elementary Data Type)有什麼區別?如:nsinteger 和int

11.property中屬性retain,copy,assgin的含義分別是什嗎?有什麼區別?將其轉換成get/set方法怎麼做?有什麼注意事項?

12.委託是什嗎?委託的property聲明用什麼屬性?為什嗎?

13.淺拷貝和深拷貝區別是什嗎?…

14.NSString 和 NSMutableString 有什麼區別?

15.自動釋放池跟GC有什麼區別?iPhone上有GC嗎?[pool release] 和[pool drain]有什麼區別?

16.

for(int index = 0; index < 20; index ++){    NSString *tempStr = @”tempStr”;    NSLog(tempStr);    NSNumber *tempNumber = [NSNumber numberWithInt:2];    NSLog(tempNumber);}

這段代碼有什麼問題.?會不會造成記憶體泄露(多線程)?在記憶體緊張的裝置上做大迴圈時自動釋放池是寫在迴圈內好還是迴圈外好?為什嗎?

17.記憶體管理的幾條原則時什嗎?按照預設法則.那些關鍵字產生的對象需要手動釋放?在和property結合的時候怎樣有效避免記憶體泄露?

18.在一個對象釋放前.如果他被加到了notificationCenter 中.不在notificationcenter中remove這個對象可能會出現什麼問題?

19.怎樣實現一個 singleton的類.給出思路。

20.什麼是序列化或者Acrchiving,可以用來做什麼,怎樣與copy結合,原理是什麼?.

21.線程是什嗎? 有哪些注意事項.?

22.在iphone上有兩件事情要做,請問是在一個線程裡按順序做效率高還是兩個線程裡做效率高?為什嗎?

23.runloop是什嗎?在主線程中的某個函數裡調用了非同步函數,怎麼樣block當前線程,且還能響應當前線程的timer事件,touch事件等.

24.ios平台怎麼做資料的持久化?coredata和sqlite有無必然聯絡?coredata是一個關係型資料庫嗎?

25.闡述一個nil對象從interface bulider產生,到載入程式Runspace,最後被釋放時所經曆的生命週期.

26.notification是同步還是非同步? kvo是同步還是非同步?notification是全進程空間的通知嗎?kvo呢?

27.kvc是什麼?kvo是什麼?有什麼特性?

28.響應者鏈是什嗎?

29.unix上進程怎麼通訊?

30.timer的間隔周期准嗎?為什嗎?怎樣實現一個精準的timer?

31.UIscrollVew用到了什麼設計模式?還能再foundation庫中找到類似的嗎?

32.如果要開發一個類似eclipse的軟體,支援外掛程式結構。且開放給第三方開發。你會怎樣去設計它?(大概思路)

33.線程和進程的區別和聯絡?

34.C和obj-c 如何混用?

35.以下每行代碼執行後,person對象的retain count分別是多少

Person *person = [[Person alloc] init];   // count 1

[person retain];   // count 2

[person release];   //count 1

[person release];   //retain count = 1;

36.ViewController 的 loadView, viewDidLoad, viewDidUnload 分別是在什麼時候調用的?

37.ViewController 的 didReceiveMemoryWarning 是在什麼時候被調用的?

38.ios5新特性有那些?

39.談談你對ARC 的認識和理解?

相關文章

聯繫我們

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