超實用的ios面試技巧,90%的人都不知道……

2021-02-25 IT大咖說

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

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

●你是否接觸過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:))

●編寫一個函數,實現遞歸刪除指定路徑下的所有文件

+ (void)deleteFiles:(NSString *)path;{
   
  NSFileManager * fileManger = [NSFileManager defaultManager];
  BOOL isDir = NO;

  BOOL isExist = [fileManger fileExistsAtPath:path isDirectory:&isDir];
  if (isExist) {
    
    if (isDir) {
    NSArray * dirArray = [fileManger 
    contentsOfDirectoryAtPath:path error:nil];
       NSString * subPath = nil;
       for (NSString * str in dirArray) {
            subPath = [path stringByAppendingPathComponent:str];
            BOOL issubDir = NO;
            [fileManger fileExistsAtPath:subPath isDirectory:&issubDir];
            [self deleteFiles:subPath];
       }
   }else{
       NSLog(@"%@",path);
       [manager removeItemAtPath:filePath error:nil];
     }
  }else{
     NSLog(@"你列印的是目錄或者不存在");
  }
}

●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如何對已有的方法,添加自己的功能代碼以實現類似記錄日誌這樣的功能?

+(NSString *)myLog

{

}


  +(void)load

  {
  
  Method description = class_getClassMethod(self, @selector(description));

  
  Method myLog = class_getClassMethod(self, @selector(myLog));

  
  method_exchangeImplementations(description, myLog);
  }

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

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

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

●KVC的底層實現?

當一個對象調用setValue方法時,方法內部會做以下操作:

①檢查是否存在相應key的set方法,如果存在,就調用set方法

②如果set方法不存在,就會查找與key相同名稱並且帶下劃線的成員屬性,如果有,則直接給成員屬性賦值

③如果沒有找到_key,就會查找相同名稱的屬性key,如果有就直接賦值

④如果還沒找到,則調用valueForUndefinedKey:和setValue:forUndefinedKey:方法。

這些方法的默認實現都是拋出異常,我們可以根據需要重寫它們。

●KVO的底層實現?

- kvo基於runtime機制實現。

- 使用了isa混寫(isa-swizzling),當一個對象(假設是person對象,person的類是MYPerson)的屬性值(假設person的age)發生改變時,系統會自動生成一個類,繼承自MYPerson:NSKVONotifying_MYPerson,在這個類的setAge方法裡面,調用[super setAge:age] [self willChangeValueForKey:@"age"] 和 [self didChangeValueForKey:@"age"],而這兩個方法內部會主動調用監聽者內部的 - (void)observeValueForKeyPath 這個方法。

- 想要看到NSKVONotifying_MYPerson很簡單,在self.person.age = 20; 這裡打斷點,在調試區域就能看到_person->NSobject->isa=(Class)NSKVONotifying_MYPerson,同時我們在 self.person = [[MYPerson alloc]init];後面打斷點,看到_person->NSObject->isa=(Class)MYPerson,由此可見,在添加監聽者之後,person類型已經由MYPerson被改變成NSKVONotifying_MYPerson

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

相關焦點

  • 這個超實用記憶法,90%的人都不知道!
    記憶,是學習的前提,記憶力強的人,無論是學習能力還是工作能力一定都不會差到哪裡。很多人記性不好都會自我安慰:天生記性就差,沒辦法。但其實,記憶力的好壞,完全是可以靠後天培養的。我想,下面這位記憶魔法師——袁文魁的故事,一定會給你不小的啟發:
  • 超實用生活小技巧 90%的人不知道
    超實用生活小技巧!有了它們,生活變得便利多了!看完之後,突然發現原來有好多東西可以循環利用,那些之前想要買買買的東西可以省下不少!過年了,攢點錢吧!起床困難戶?不怕,拿個碗來,鬧鐘震天響!用義大利麵來點蠟燭,不傷手喲!
  • 面試官無法拒絕的自我介紹,90%的求職者不知道的高情商回答技巧
    一句簡單的自我介紹,但90%的求職者都不知道這個問題的重要性,面試官出題的意圖是想考驗一個人的應急能力或換位思考能力。最重要的一點是,考查面試者的情商夠不夠高!本意是想炫耀一下文採,結果卻表達不出來。這些回答是不是很熟悉,很多求職者在面試時,或許都會說出上面的開場白。其實,上述問題並不是沒有辦法處理,在面試時,會有一些高情商的回答技巧,掌握一兩個,結合自己的實際情況,說出讓面試官滿意的自我介紹並不是很難。
  • 實用!文職面試技巧和注意事項
    江西軍轉幹考試網同步江西華圖招聘信息:實用!文職面試技巧和注意事項,報名時間:,請考生多加關注。更多關於軍隊文職,2020文職,軍隊文職考試,江西軍轉幹招聘考試的內容,請關注(江西金融招聘考試頻道/江西人事考試網)!加入軍隊文職官方交流群(
  • ios破解版遊戲下載
    你正在尋ios破解版遊戲嗎?朋友,別再盲目尋找了,快上咪嚕遊戲盒子!裡面ios破解手遊應有盡有,不好玩來打我! 咪嚕BT手遊app為您提供海量BT手遊,無限元寶鑽石,上線送滿VIP,裡面的遊戲畫面精緻到讓人感動; 為您提供高比例充值,官方BT服,充值高達1:500;高爆率快速通關,開啟BT手遊新玩法; 為您提供官服/H5手遊:充值滿立減+超多優惠劵可同時享有,福利多少優惠多多; 為您提供千餘款熱門手遊,規模全球領先!
  • 40個西部數碼實用功能,90%的人都不知道?
    2019年馬上就要結束啦~你們天天都在用的西部數碼——這一年悄悄上線了一大把實用新功能小編隨手整理了40個實用功能知道10個以上的…..6.域名解析NS記錄如果需要將子域名指定給其他DNS服務商解析,支持添加NS記錄7.域名解析檢查功能能幫助用戶全面發現因域名問題導致的解析不生效(如解析設置錯誤、狀態錯誤、過期等),幫助客戶快速定位問題。
  • ios免越獄破解版遊戲下載
    你正在尋ios免越獄破解版遊戲嗎?朋友,別再盲目尋找了,快上咪嚕遊戲盒子!裡面破解手遊應有盡有,不好玩來打我! 咪嚕BT手遊app為您提供海量BT手遊,無限元寶鑽石,上線送滿VIP,裡面的遊戲畫面精緻到讓人感動; 為您提供高比例充值,官方BT服,充值高達1:500;高爆率快速通關,開啟BT手遊新玩法; 為您提供官服/H5手遊:充值滿立減+超多優惠劵可同時享有,福利多少優惠多多; 為您提供千餘款熱門手遊,規模全球領先!
  • 這個巨實用的收納「彩蛋」 90%的人都不知道
    「廚房好小,每次做飯,臺面都不夠放。」「地兒就這麼多了,物品卻只增不減,怎麼塞都塞不下……」都說榨乾每一處空間是小戶型的萬能解法,要我說,怎麼「偷」空間又不會顯得擁擠才是小戶型的最優解。今天,家居君來貢獻一個解決收納痛點又不顯擁擠的方法,手把手教你盤活那些被閒置的空間,無需大改大動,就能多掙回幾平米。
  • 90%人都不知道的蘋果超實用技巧,快看看你會不會?
    大家對蘋果手機都不陌生吧,自己或身邊朋友手上拿的可能就是蘋果機型,的確蘋果手機相比安卓機系統更流暢耐用,兩三年也很少出現卡頓死機情況,俘獲了一眾搞機黨的芳心。那問題來了,用了這麼多年手機,手機隱藏的實用功能你都有全部體驗過嗎?
  • 公務員面試三大實用技巧,贏在細節
    相信每一位考生在臨近面試時都會忐忑不安,所以今天小編想跟大家聊聊面試中三個實用的技巧,讓大家贏在面試,早日圓夢。實用技巧一:有效把控面試時間1.思考時間結構化實用技巧二:審題要準之聽題1.有效利用紙,筆一般情況下聽題考場都會提供紙筆,有效利用紙筆能夠幫助考生把聽到的信息快速記錄在草稿紙上,方便考生後續整合。由於考生寫字速度肯定跟不上說話的速度,所以考生在記錄時有幾點值得注意。
  • 5個冷門但超實用的面試技巧,快速拿到更好offer
    有的人工作能力出色,卻在面試時發揮不佳,得不到好的offer;而有的人卻懂得如何在面試中展現自己,贏得了更好的工作機會。沒有拿到理想offer的人,或許會瞧不起那些工作能力一般,卻善於在面試時展現自我的人。但說真的,這不是什麼奇技淫巧,這是一種能力。有的人具備了工作的能力,有的人則掌握了展示自身價值的能力。
  • 乾貨l 90%的新人主播都不知道的話術技巧
    同樣一種產品,經過朱廣權老師文化般的解說,更讓人印象深刻。段子不斷的朱廣權老師,也硬生生地成了網友們的新愛。但如此優秀的朱廣權老師,開口亮的技能,可不是一天練就的。如同你剛做淘寶主播,就想口若懸河,人見人愛,也是不可能的。畢竟,90%的新人主播是沒有什麼話術技巧的。但淘寶直播要想有人給你捧場甚至買東西,不會說話能成嗎?
  • 職場新人恐懼面試怎麼辦?這3個實用技巧趕快學起來
    其實這都是被職場新人誇大了的想像,在工作中你要是選擇了一個好的企業,收穫也是很多的,不僅會對自己個人精神上提高,還會讓自己的人際圈得到良好的擴充。但是,當你考察這個公司覺得很合適,你的能力也是公司最想招攬的人才,就怕在面試時你沒有發揮好,導致好的工作就與你失之交臂,這應該就是最遺憾的。職場新人恐懼面試怎麼辦?這4個實用技巧趕快學起來,這樣才會找到最滿意的工作。
  • 裝修房子,過來人總結超實用6個收納技巧,不浪費空間,實用極了
    裝修房子,過來人總結超實用6個收納技巧,不浪費空間,實用極了如果說我們家裡面最小的空間,那一定非衛生間莫屬了,現在的房子寸土寸金,所以每一個空間都需要利用的非常好,不然浪費了空間就不好了,尤其是對於衛生間來說更加重要,因為我們都知道,衛生間其實要擺放非常多的物品
  • 實用貼 | @找工作的小夥伴,一份面試加分技巧送給你
    實用貼 | @找工作的小夥伴,一份面試加分技巧送給你 2019-12-19 17:19 來源:澎湃新聞·澎湃號·政務
  • 不看不知道!這些超實用的word技巧,讓你事半功倍!
    來源:優就業、MBA智庫文檔後臺回復「word」可以查閱更多office辦公小技巧
  • 2020廣西柳州事業單位面試技巧:克服緊張的幾個實用小建議
    【導讀】廣西柳州事業單位招聘網為大家帶來面試技巧熱點,希望可以幫助各位考生順利備考事業單位考試。【導讀】中公事業單位為大家帶來面試技巧克服緊張的幾個實用小建議科學表明,自我暗示能夠直接影響人的行為和言論。在面試前,我們可以默默的在心裡對自己說「我能行」「我最棒」「我一定能面試成功」,就算這次失敗了也沒關係,下次還有機會,不要把結果看得太重。只要下次不再犯同樣的錯誤即可。這樣會提高我們的面試成功率。
  • 五個面試實用小技巧,讓你在面試的時候得心應手
    ,但對大多數的人來說,都是一個非常重要的課題,甚至對面試感到非常的緊張和害怕,大家都想在面試的時候把最好的一面表現出來,進入公司的機會,面試錄取率高的人可以選擇多家公司,如果非常不擅長面試,又沒有什麼特別才能的話,就只能有被公司選擇機會了,無法獲得比較滿意的薪水,那到底我們該怎麼做才能大幅提升自己的錄取機率呢?
  • 90%的人面試後啥都不做,只有10%的人發了感謝信,結果都被錄用了
    昨天剛剛完成北京交通大學全體畢業生的空中就業指導,在課程中我有特別提到在求職的過程管理中使用的一個小技巧,叫做「Thank You Letter」,也就是感謝信。通常在什麼情況下寫感謝信呢,有兩個場景:第一,是在面試之後;第二,是在被offer之後,今天我們著重講offer前的感謝信技巧。
  • iphone實用小技巧,這些都不知道,你的手機白買了
    眾所周知,這兩年iPhone的使用人群越來越廣了,尤其是現如今年輕人更加偏愛iPhone,它的功能和外觀都吸引著廣大使用者的眼球。但是很多人卻還不知道iphone隱藏的強大功能,今天小編就帶大家來了解一下。 1.使用spotlight進行計算或者換算匯率 這個功能超級強大,很多人都不知道。