歡迎光臨
每天分享高質量文章

超實用的BAT應聘技巧,但90%的人都不知道……

移動網際網路行業一直是社會發展的一個趨勢,且這幾年快速十分迅速,諸如BAT這些大型的網際網路企業的使用者也是主要以移動端使用者為主。

iOS開發本身就屬於移動開發,所以它依舊是目前熱門的行業,今天小編就跟大家聊聊iOS面試必考的幾大知識點。

01

Objective-C

●你是否接觸過OC中的反射機制?簡單聊一下概念和使用

Class反射

透過類名的字串形式實體化物件

Class class NSClassFromString@(@”student”);

Student *stu = [[class alloc ]init];

將類名變為字串

Class class =[Student class];

NSString*className = NSStringFromClass(class);

SEL的反射

透過方法的字串形式實體化方法

SEL selector = NSSelectorFromClass(@”setName”);

[stu perform Selector:selector withObject:@”Mike”];

將方法變成字串

NSString FomrSelector(@selector*(setName:))


●編寫一個函式,實現遞迴刪除指定路徑下的所有檔案


02

Runloop&Runtime;

●Runloop和執行緒有什麼關係?

主執行緒的run loop預設是啟動的

iOS的應用程式裡面,程式啟動後會有一個如下的main()函式

(arc,*argv[]){

@autoreleasepool{

Return UIApplicationMain(argc,argv,,NSStringFromClass([AppDelegate class]));

}

}

重點是UIApplicationMain()函式,這個方法會為mainthread設定一個NSRunLoop物件。

這就解釋了:為什麼我們的應用可以在無人操作的時候休息,需要讓它幹活的時候又能立馬響應。

對其它執行緒來說,runloop預設是沒有啟動的,runloop只在你要和執行緒有互動時才需要。

在任何一個Cocoa程式的執行緒中,都可以透過以下程式碼來獲取到當前賢臣的runloop

NSRunLoop*runloop = [NSRunLoop currentRunLoop];


●Obiective-C如何對已有的方法,新增自己的功能程式碼以實現類似記錄日誌這樣的功能?


03

Swift

●舉例說明Swift裡邊有哪些是Objective-C中沒有的?

Swift引入了在Objective-C中沒有的一些高階資料型別,例如tuples(元祖),可以使你建立和傳遞一組數值。

Swift還引入了可選項型別(Optionals),用於處理變數值不存在的情況。可選項的意思有兩種,一種變數是存在的,例如等於X,而是變數值根本不存在。Optionals類似於Objective-C中指向nil的指標、但是適用於所有的資料型別,而非僅僅侷限於類,Optionals相比於Objective-C中nil指標更加安全簡明,並且也是Swift諸多最大功能的核心。


04

KVO-KVC

●KVC的底層實現?

●KVO的底層實現?


結語

有人說iOS行情越來越難,其實這種說話並不準確,在行動網路愈加普及的今天,iOS程式員失業的情況是不會出現的。目前市場上iOS初級開發者人滿為患,但中級高階的開發者依舊非常稀缺在這個時候,你迫切需要的是提高自己的技術。


如何學習iOS?swift和OC到底該用誰?怎麼樣確定未來發展方向?中、外企業間有何文化差異?

作為iOS程式員,我們該如何在時代的浪潮中把握機遇,不被淘汰?


那麼小編這裡就向大家推薦一個iOS技術學習交流群,大家可以透過掃描或長按識別下方二維碼加入學習。

iOS學習交流群

不定期有逆向、iOS架構、反編譯等免費知識分享課,更有行業大咖講述各大公司面試技巧,如果你對程式員這份工作滿懷熱愛,如果你樂意走在技術的最前沿,不妨一同前行,未來屬於掌握技術的人們。

贊(0)

分享創造快樂