高級iOS面試題全紀錄

iOS基礎:

  1. 多線程使用粟判,gcd跟operation區(qū)別,怎么取消正在執(zhí)行的gcd任務
  • GCD 系列知識總結
  • NSOperation相關知識總結
  • 可以仿照operation的工作原理榴嗅,設置一個BOOL變量厨相,當需要停止時設置成YES,執(zhí)行任務的時候去判斷這個狀態(tài)
  • 使用帶來的問題:資源競爭、優(yōu)先倒置缆巧、死鎖
  1. runtime的使用
  • iOS Runtime詳解
  • swizzling中hook一個方法要先class_addMethod,假如成功class_replaceMethod,失敗直接method_exchangeImplementations豌拙;這樣做的原因是防止本類中沒有實現(xiàn)這個方法陕悬,即使父類有實現(xiàn)這個方法也不應該替換父類該方法
  • 項目中按鈕防止連續(xù)點擊
  • 多頁面通知的封裝
  • 歸檔解檔

3.runloop的理解跟應用

  • iOS RunLoop詳解
  • 本質上是一個while循環(huán),一個線程對應一個loop。主線程loop默認開啟按傅,子線程要自己手動開啟捉超。一個loop鐘有多個模式(mode),默認都是default模式唯绍。
  • 子線程逼丛溃活,比如在子線程加一個定時器况芒,默認執(zhí)行一次就不會再執(zhí)行了
  • 假如在主線程加一個定時器去修改UI,當我們滑動界面的時候就會發(fā)現(xiàn)UI不變了惜纸。因為默認是default模式,滑動界面時切換成響應模式。通過調整成common模式耐版,就可以解決這個問題了祠够。
  • 重任務分散,比如批量大圖加載粪牲。
  1. 自動釋放池工作原理
    AutoreleasePool的原理和實現(xiàn)
  2. 響應鏈原理
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
    if (!self.isUserInteractionEnabled || self.isHidden || self.alpha <= 0.01) {
        return nil;
    }
    if ([self pointInside:point withEvent:event]) {//這邊point是在self上的位置
        for (UIView *subview in [self.subviews reverseObjectEnumerator]) {
            CGPoint convertedPoint = [subview convertPoint:point fromView:self];//convertedPoint是subView上的位置
            UIView *hitTestView = [subview hitTest:convertedPoint withEvent:event];
            if (hitTestView) {
                return hitTestView;
            }
        }
        return self;
    }
    return nil;
}
  • 擴大按鈕點擊范圍
  • 修改響應視圖
  • 讓超出父視圖的子視圖響應操作
  1. 自動打包技術
  1. a,b任務并發(fā)執(zhí)行哪审,然后執(zhí)行c任務怎么做,有哪些方法實現(xiàn)
  • dispatch_group_async(A),dispatch_group_async(B),dispatch_group_notify(C)
  • operation設置任務C依賴A,依賴B
  • 對C加柵欄
-(void)testBarrier{
    dispatch_queue_t osConcurrent = dispatch_queue_create("dyConcurrent1", DISPATCH_QUEUE_CONCURRENT); //自己創(chuàng)建并行隊列
    dispatch_async(osConcurrent, ^{
        for (int i = 0; i< 3; i++) {
            NSLog(@"任務1");
        }
    });
    
    dispatch_async(osConcurrent, ^{
        for (int i = 0; i< 3; i++) {
            NSLog(@"任務2");
        }
    });

    dispatch_barrier_async(osConcurrent, ^{//這邊一定要是自己創(chuàng)建的并行隊列虑瀑,系統(tǒng)global無效
        NSLog(@"追加追加追加");
    });
    dispatch_async(osConcurrent, ^{
        for (int i = 0; i< 3; i++) {
            NSLog(@"任務3");
        }
    });
}
輸出:
任務1湿滓、2并發(fā)執(zhí)行,執(zhí)行完執(zhí)行追加追加舌狗,再執(zhí)行任務3

一個dispatch_barrier允許你在一個并行隊列中創(chuàng)建一個同步點叽奥。當在隊列中遇到這個barrier時,這個barrier block便會延遲執(zhí)行(同時所有在其后的block都會延遲),直至所有在barrier之前的block執(zhí)行完成。這時,這個barrier block便會執(zhí)行痛侍。之后隊列便恢復正常執(zhí)行朝氓。

  1. 多線程中的鎖使用,要是你你怎么實現(xiàn)

網絡相關:

  1. https請求流程主届,哪一步有可能被攻破
  2. tcp,udp協(xié)議

數據結構:

  1. 數組赵哲、字典底層實現(xiàn)

開放性問題:

  1. 你的優(yōu)勢是什么
  2. 你們公司做的最好的是哪一塊
  3. 組建化做了嗎,路由要是你設計你怎么設計君丁,每種設計的優(yōu)缺點
  • openUrl的方式 {scheme}://{module}/{page}?{para1=1&para2=2 ... }
  1. RN有了解嗎枫夺?你們公司為什么不用RN,原因是什么
  2. 要是你入職能為我們公司帶來哪些改變
  3. 最近在看什么書,以后職業(yè)規(guī)劃绘闷?
  4. 你有什么問題問我嗎橡庞?

最后附上瀏覽的其他面試心得:

  1. 2017年iOS面試題總結
  2. 2017年5月iOS招人心得(附面試題)
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市印蔗,隨后出現(xiàn)的幾起案子扒最,更是在濱河造成了極大的恐慌,老刑警劉巖华嘹,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件吧趣,死亡現(xiàn)場離奇詭異,居然都是意外死亡耙厚,警方通過查閱死者的電腦和手機强挫,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來颜曾,“玉大人纠拔,你說我怎么就攤上這事》汉溃” “怎么了稠诲?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵侦鹏,是天一觀的道長。 經常有香客問我臀叙,道長略水,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任劝萤,我火速辦了婚禮渊涝,結果婚禮上,老公的妹妹穿的比我還像新娘床嫌。我一直安慰自己跨释,他們只是感情好,可當我...
    茶點故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布厌处。 她就那樣靜靜地躺著鳖谈,像睡著了一般。 火紅的嫁衣襯著肌膚如雪阔涉。 梳的紋絲不亂的頭發(fā)上缆娃,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天,我揣著相機與錄音瑰排,去河邊找鬼贯要。 笑死,一個胖子當著我的面吹牛椭住,可吹牛的內容都是我干的崇渗。 我是一名探鬼主播,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼函荣,長吁一口氣:“原來是場噩夢啊……” “哼显押!你這毒婦竟也來了?” 一聲冷哼從身側響起傻挂,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎挖息,沒想到半個月后金拒,有當地人在樹林里發(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡套腹,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年绪抛,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片电禀。...
    茶點故事閱讀 38,599評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡幢码,死狀恐怖,靈堂內的尸體忽然破棺而出尖飞,到底是詐尸還是另有隱情症副,我是刑警寧澤店雅,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站贞铣,受9級特大地震影響闹啦,放射性物質發(fā)生泄漏。R本人自食惡果不足惜辕坝,卻給世界環(huán)境...
    茶點故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一窍奋、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧酱畅,春花似錦琳袄、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至吁峻,卻和暖如春滑负,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背用含。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工矮慕, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人啄骇。 一個月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓痴鳄,卻偏偏與公主長得像,于是被迫代替她去往敵國和親缸夹。 傳聞我的和親對象是個殘疾皇子痪寻,可洞房花燭夜當晚...
    茶點故事閱讀 43,465評論 2 348

推薦閱讀更多精彩內容

  • 1.ios高性能編程 (1).內層 最小的內層平均值和峰值(2).耗電量 高效的算法和數據結構(3).初始化時...
    歐辰_OSR閱讀 29,334評論 8 265
  • iOS多線程編程 基本知識 1. 進程(process) 進程是指在系統(tǒng)中正在運行的一個應用程序,就是一段程序的執(zhí)...
    陵無山閱讀 6,021評論 1 14
  • OC語言基礎 1.類與對象 類方法 OC的類方法只有2種:靜態(tài)方法和實例方法兩種 在OC中虽惭,只要方法聲明在@int...
    奇異果好補閱讀 4,258評論 0 11
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴謹 對...
    cosWriter閱讀 11,090評論 1 32
  • 在這個二十多快要奔三的年紀橡类,你還不夠強大,太過渺小弱小芽唇,所以你感覺不公顾画,不合理,不開心匆笤。祝你早日強大到百毒不侵研侣,鋼...
    發(fā)毛柯蚊蚊閱讀 224評論 0 0