iOS開發--面試,ios開發--
今天一大清早去面試, 公司距離我家還挺近的, 花了一個小時走著去, 也順路印下簡曆, 理理思路, 到了公司面試官什麼的都不錯, 還給我講了很多知識, 收貨也是滿滿的, 總結下今天都遇到了哪些問題, 調整調整狀態.
1, 當需要自訂tabbar的item的數量可變時怎麼做的
這裡原本是想說自訂tabbar的, 不過估計考察的應該是runtime下的class動態建立類方法, 然後就簡單的說下runtime, 並不知道回答的是否好, 但是原理是不會錯的. 通過和背景合作在資料中索引值對中拿到類名, 然後通過class的方法執行個體化對象即可(NSClassFromString()).
2, 瞭解runtime麼
並沒有和面試官說訊息機制什麼亂七八糟的, 感覺沒多大卵用, 就說了runtime的一些實際應用, 自我感覺還湊合, 畢竟自己在開發中用過幾次, 也會動態設定成員變數(成員變數其實是不可以的, 但是在runtime標頭檔中的確有方法, 這個涉及到靜態結構體成員變數動態增加, 所以應該並不是通過常規理解的runtime方法實現的)和方法
3, 做過定位麼, 如果在後台始終重新整理位置
這個我感覺可能面試有點誤會我的意思了, 也可能是我的確說錯了, 畢竟本人英語很爛, 方法會敲不會說, 不過也做過差不多的, 定位就不用說了, 沒啥說的coreLocation或者百度的SDK, 說下如果在程式進入後台後長久的運行代碼.
- (void)applicationDidEnterBackground:(UIApplication *)application { [self beingBackgroundUnpdateTask]; /* 代碼寫在這裡就可以了 */ [self endBackgroundUpdateTask];}- (void)beingBackgroundUnpdateTask { self.backgroundUpdateTask = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{ [self endBackgroundUpdateTask]; }];}- (void)endBackgroundUpdateTask { [[UIApplication sharedApplication] endBackgroundTask:self.backgroundUpdateTask]; self.backgroundUpdateTask = UIBackgroundTaskInvalid;}
這樣後台就會反覆重新整理了.
4, 瞭解YYModel, 或者YYKit麼
表示真的不會, 就看過一些YYKit的源碼, 也沒想過面試會問三方架構, 基本沒說上啥.
5, 瞭解MVVM嗎, 說說MVVM
這個基本也沒啥說的, 網上一查一堆, 自己還是會一些的, 簡單說說, 沒問太多.
6, RAC
響應式函數編程, 對於訊號流的應用, 說了些應用情境, 非要說架構的話也並非很熟悉.
7, tableView最佳化
說了動態計算高度, 通過介面資料等, 分散方法邏輯, 盡量手動計算, 也說了drawRect, 說了手動繪製cell, 不過又問起了YYKit從這裡, 還是回答不上來了.