我在爲一個面試人員做一個可可開發人員的面試問題列表。我是一名程序員,但我從未做過Objective-C。我偶然發現了一個涉及動態輸入的interesting question。它應該是初級的,我已經嘗試過並編譯了它,但我仍然不確定它是如何以及爲什麼會起作用的。無法弄清楚這個動態打字的東西
的問題是
當您執行以下在編譯時和運行時會發生什麼:
NSString *s = [NSNumber numberWithInt:3];
int i = [s intValue];
在調試器中我得到
i = (int) 3 s = (__NSFCNumber*) 0x383 (invalid address)
的輸出NSLog(@"%d",i)
是3
,輸出NSLog(@"%@",s)
是3
。
有人可以給我一個解釋如何通過編譯器和運行時系統處理所有這些,同時也要記住我對Objective-C和Cocoa是全新的,但並不是全新的計算機科學?
關於面試的一面評論:任何一個好的程序員都可以學習任何語言,所以我對理解一個被採訪者的能力比他們的知識更感興趣。我討厭的測試類型問題 - 儘管鏈接中的問題大多是開始交談的好起始點。 –
你最後一句話是我失蹤的。我沒有意識到這兩種類型都會響應'intValue'。 – Phonon
關於面試問題,我完全同意。我通常不會通過給他們測試類型的問題來採訪人們,但我們正在尋找一名iPhone開發人員,公司中沒有人對iPhone編程知道太多,所以我只是試圖看看他們在概念。這就是爲什麼我會訴諸標準化的問答類型的面試,但感謝您的建議。你的觀點非常有效。 – Phonon