iOS面試題收集

github上不錯(cuò)的一套題

swift面試題


美團(tuán)

畫(huà)一個(gè)原生和webview混合開(kāi)發(fā)的框架,寫出主要的方法

runtime 怎么把嵌套結(jié)構(gòu)的數(shù)據(jù)賦值給模型程腹,如何優(yōu)化一下


    什么是響應(yīng)鏈离唬,它是怎么工作的子眶?
    如何訪問(wèn)并修改一個(gè)類的私有屬性吓懈?
    iOS Extension 是什么蝙眶?能列舉幾個(gè)常用的 Extension 么搔体?
    如何把一個(gè)包含自定義對(duì)象的數(shù)組序列化到磁盤恨樟?
    Apple Pay 是什么?它的大概工作流程是怎樣的疚俱?
    iOS 的沙盒目錄結(jié)構(gòu)是怎樣的劝术? App Bundle 里面都有什么?
    iOS 的簽名機(jī)制大概是怎樣的呆奕?
    iOS 7的多任務(wù)添加了哪兩個(gè)新的 API? 各自的使用場(chǎng)景是什么养晋?
    Objective-C 的 class 是如何實(shí)現(xiàn)的?Selector 是如何被轉(zhuǎn)化為 C 語(yǔ)言的函數(shù)調(diào)用的梁钾?
    UIScrollView 大概是如何實(shí)現(xiàn)的绳泉,它是如何捕捉、響應(yīng)手勢(shì)的姆泻?
    Objective-C 如何對(duì)已有的方法零酪,添加自己的功能代碼以實(shí)現(xiàn)類似記錄日志這樣的功能冒嫡?
    +load 和 +initialize 的區(qū)別是什么?
    如何讓 Category 支持屬性四苇?
    NSOperation 相比于 GCD 有哪些優(yōu)勢(shì)孝凌?
    strong / weak / unsafe_unretained 的區(qū)別?
    如何為 Class 定義一個(gè)對(duì)外只讀對(duì)內(nèi)可讀寫的屬性?
    Objective-C 中月腋,meta-class 指的是什么蟀架?
    UIView 和 CALayer 之間的關(guān)系?
    +[UIView animateWithDuration:animations:completion:] 內(nèi)部大概是如何實(shí)現(xiàn)的榆骚?
    什么時(shí)候會(huì)發(fā)生「隱式動(dòng)畫(huà)」辜窑?
    如何處理異步的網(wǎng)絡(luò)請(qǐng)求?
    frame 和 bounds 的區(qū)別是什么寨躁?
    如何把一張大圖縮小為1/4大小的縮略圖穆碎?
    一個(gè) App 會(huì)處于哪些狀態(tài)?
    Push Notification 是如何工作的职恳?
    什么是 Runloop所禀?
    Toll-Free Bridging 是什么?什么情況下會(huì)使用放钦?
    當(dāng)系統(tǒng)出現(xiàn)內(nèi)存警告時(shí)會(huì)發(fā)生什么色徘?
    什么是 Protocol,Delegate 一般是怎么用的操禀?
    autorelease 對(duì)象在什么情況下會(huì)被釋放褂策?
    UIWebView 有哪些性能問(wèn)題?有沒(méi)有可替代的方案颓屑。
    為什么 NotificationCenter 要 removeObserver? 如何實(shí)現(xiàn)自動(dòng) remove?
    當(dāng) TableView 的 Cell 改變時(shí)斤寂,如何讓這些改變以動(dòng)畫(huà)的形式呈現(xiàn)?
    什么是 Method Swizzle揪惦,什么情況下會(huì)使用遍搞?

1,下面代碼在按鈕點(diǎn)擊后器腋,在ARC下會(huì)發(fā)生什么溪猿,MRC下呢?為什么纫塌?
    @property(nonatomic, assign) void(^block)();
    - (void)viewDidLoad {
        [superviewDidLoad];
        int value = 10;
        void(^blockC)() = ^{
            NSLog(@"just a block === %d", value);
        };
        
        NSLog(@"%@", blockC);
        _block = blockC;
        
    }

    - (IBAction)action:(id)sender {
        NSLog(@"%@", _block);
    }

    2诊县,在ARC環(huán)境下這段代碼為什么不會(huì)崩潰?

    @property(nonatomic, weak) void(^block)();

    - (void)viewDidLoad {
        [super viewDidLoad];
        
        void(^ __weak blockA)() = ^{
            NSLog(@"just a block");
        };
        
        _block = blockA;
        
    }

    - (IBAction)action:(id)sender {
        _block();
    }

    3措左,下面是一個(gè)員工表依痊,manager_id表示對(duì)應(yīng)的boss的ID。通過(guò)一個(gè)SQL找出下表中比boss工資還高的人媳荒。抗悍。。钳枕。
    id  name    salary  manager_id
    1   Noah    70000   NULL
    2   西蘭花 80000   1
    3   椰菜花 80000   NULL
    4   沒(méi)錢花 80000   3

    輸出格式為:

    name
    西蘭花

    4缴渊,寫一個(gè)函數(shù),輸入一個(gè)數(shù)如38鱼炒,拆分 3 + 8 = 11衔沼,1 + 1 = 2,最后2無(wú)法拆分就返回(偽代碼也行)

    5昔瞧,通過(guò)runtime添加的“關(guān)聯(lián)對(duì)象”和類的實(shí)例變量有什么區(qū)別指蚁?使用時(shí)要注意什么?

    6自晰,用一個(gè)生活中的例子來(lái)說(shuō)說(shuō)同步和異步凝化。

    7,線程間通信在OC中有幾種方式酬荞?分別是搓劫?常用那種?

    8混巧,使用快速枚舉迭代一個(gè)可變數(shù)組時(shí)需要注意什么問(wèn)題枪向?怎么避免?

    9咧党,什么是面向?qū)ο蟮亩鄳B(tài)性秘蛔?

    10,UIViewController的presentViewController和UINavigationController的pushViewController方法分別多用于什么交互場(chǎng)景傍衡?

    11深员,NSOperation和GCD的區(qū)別是什么?前者多用于什么場(chǎng)景蛙埂?

    12辨液,面向接口編程指的是什么?為什么說(shuō)面向?qū)崿F(xiàn)編程是一種錯(cuò)誤的編程方式箱残?

    13滔迈,在iOS開(kāi)發(fā)中遇到那些類族(Class Cluster) ?如NSNumber這種被辑。為什么需要這種設(shè)計(jì)方式燎悍?

    14,javascript的原型鏈和OC的繼承有什么區(qū)別盼理?

    15谈山,Hybrid開(kāi)發(fā)的優(yōu)勢(shì)在哪里?目前有那些框架可以實(shí)現(xiàn)Hybrid開(kāi)發(fā)宏怔?

    16奏路,使用了ARC是不是就等于沒(méi)有內(nèi)存泄漏了畴椰?如果不是的話請(qǐng)舉例。

    17鸽粉,下面代碼中為什么可以直接用self斜脂?
    [UIView animateWithDuration:1 animations:^{
        self.view.backgroundColor = [UIColor yellowColor];
    }];

    下面這段代碼可以用self嗎?為什么触机?
    - (void)doSomething {
        [BlockClass doSomethingUseBlock:^{
            NSLog(@"%@", self);
        }];
    }


    18帚戳,進(jìn)程的內(nèi)存布局是怎樣的?

    19儡首,在GCD中片任,那幾種場(chǎng)景會(huì)出現(xiàn)死鎖的現(xiàn)象?怎么避免蔬胯?

    20对供,怎么用NSOperation封裝一個(gè)異步請(qǐng)求?這個(gè)Operation需要放到NSOperationQueue里調(diào)度的氛濒。

    21犁钟,CoreFoundation和Foundation有什么區(qū)別?

    22泼橘,怎么判斷兩個(gè)鏈表是雙交的涝动?

    23,怎么判斷一個(gè)鏈表存在環(huán)?

    24炬灭,當(dāng)一個(gè)View的bounds原點(diǎn)不為0的時(shí)候會(huì)出現(xiàn)什么情況醋粟?

    25,OC的數(shù)組是怎么實(shí)現(xiàn)的重归?和C的數(shù)組區(qū)別在米愿?簡(jiǎn)單說(shuō)一下即可。

    26鼻吮,weak和assign有什么區(qū)別育苟?

    27,setNeedLayout的作用是什么椎木?

    28违柏,什么時(shí)候用NS_OPTIONS,NS_ENUM?


微博算法題

    1香椎、64位操作系統(tǒng)漱竖,64位編譯器  sizeof(int) sizeof(char)  sizeof(int *) sizeof(char *) 分別是多少
    2、64位操作系統(tǒng)畜伐,一個(gè)結(jié)構(gòu) struct aStruct{int a; char b; int c; char d}; 此時(shí) sizeof(struct aStruct) 是多少馍惹? 如果是 struct aStruct{int a; char b; char d; int c};此時(shí) sizeof(struct aStruct) 是多少?
    3万矾、全局并發(fā)隊(duì)列和自定義并發(fā)隊(duì)列的區(qū)別悼吱,如果現(xiàn)在有兩種任務(wù)需要并發(fā)處理,其中一種是:任務(wù)單位小良狈,數(shù)量多  另一種是:任務(wù)單位大后添,數(shù)量少 分別應(yīng)該使用哪種隊(duì)列處理?為什么们颜?
    4、為了防止循環(huán)引用猎醇,我們都知道使用weak(self); 但是程序中偶爾會(huì)見(jiàn)到strong(self); 這種用法窥突,請(qǐng)問(wèn):strong(self)的應(yīng)用場(chǎng)景是什么?
    5硫嘶、為了防止循環(huán)引用阻问,我們都知道使用weak(self),是不是所有的block 如果內(nèi)部需要使用對(duì)象本身沦疾,都需要使用weakself称近?舉例說(shuō)明
    6、現(xiàn)有一個(gè)對(duì)象a哮塞,對(duì)象a 強(qiáng)持有了自定義對(duì)象b刨秆、c、d, 是不是可以說(shuō)忆畅,當(dāng)a的dealloc 只要執(zhí)行了 我就可以認(rèn)為內(nèi)存沒(méi)有泄漏了衡未?如果不是的話,請(qǐng)舉出例子讓a對(duì)象完全釋放
    7家凯、類方法和對(duì)象方法的區(qū)別何在缓醋?類方法的生存周期? 相對(duì)與對(duì)象方法绊诲,哪類處理適合使用類方法送粱?
    8、kvo監(jiān)聽(tīng)是否一定是在主線程完成的掂之?如果不是抗俄,請(qǐng)舉例說(shuō)明
    9、某同事開(kāi)啟了一個(gè)NSTimer,但是無(wú)論如何這個(gè)timer都跑不起來(lái)世舰,作為他的老大橄镜,代碼看起來(lái)沒(méi)什么問(wèn)題,以你10年ios的開(kāi)發(fā)經(jīng)驗(yàn)冯乘,第一反應(yīng)是問(wèn)題出在哪洽胶?
    10、多線程編程種,死鎖產(chǎn)生的條件是什么姊氓?死鎖是不是只在主線程發(fā)生丐怯?
    11、舉出一個(gè)例子翔横,說(shuō)明dispatch_sync 的應(yīng)用場(chǎng)景
    12读跷、如何創(chuàng)建一個(gè)常駐線程?
    13禾唁、我們知道效览,多線程讀寫,只要有1個(gè)寫荡短,就有可能出現(xiàn)并發(fā)問(wèn)題丐枉,解決方案可以用鎖,但我們又知道鎖的效率不高掘托,并且破壞程序結(jié)構(gòu)瘦锹,加鎖的代碼通常并不易理清邏輯,那么闪盔,還有什么樣的手段能實(shí)現(xiàn)這個(gè)目的弯院?(考慮隊(duì)列) 如何實(shí)現(xiàn)?
    14泪掀、基于13題的前提听绳,假如現(xiàn)在有一個(gè)模型,寫操作較少异赫,但是讀操作非常多辫红,如何優(yōu)化13題的模型?(考慮隊(duì)列和dispatch_barrier函數(shù)族)
    15祝辣、dispatch_group函數(shù)組的應(yīng)用場(chǎng)景是什么贴妻?假如現(xiàn)在讓你使用信號(hào)量(dispatch_semphore)來(lái)模擬類似的功能,如何實(shí)現(xiàn)蝙斜?
    16名惩、原子操作atomic 修飾的變量本身是否可以認(rèn)為是線程安全的? 如果不是孕荠,那什么類型的變量可以認(rèn)為是安全的娩鹉,又有什么樣的變量是不安全的?舉例說(shuō)明即可
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末稚伍,一起剝皮案震驚了整個(gè)濱河市弯予,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌个曙,老刑警劉巖锈嫩,帶你破解...
    沈念sama閱讀 218,941評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡呼寸,警方通過(guò)查閱死者的電腦和手機(jī)艳汽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)对雪,“玉大人河狐,你說(shuō)我怎么就攤上這事∩罚” “怎么了馋艺?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,345評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)迈套。 經(jīng)常有香客問(wèn)我捐祠,道長(zhǎng),這世上最難降的妖魔是什么交汤? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,851評(píng)論 1 295
  • 正文 為了忘掉前任雏赦,我火速辦了婚禮劫笙,結(jié)果婚禮上芙扎,老公的妹妹穿的比我還像新娘。我一直安慰自己填大,他們只是感情好戒洼,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著允华,像睡著了一般圈浇。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上靴寂,一...
    開(kāi)封第一講書(shū)人閱讀 51,688評(píng)論 1 305
  • 那天磷蜀,我揣著相機(jī)與錄音,去河邊找鬼百炬。 笑死褐隆,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的剖踊。 我是一名探鬼主播庶弃,決...
    沈念sama閱讀 40,414評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼德澈!你這毒婦竟也來(lái)了歇攻?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,319評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤梆造,失蹤者是張志新(化名)和其女友劉穎缴守,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,775評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡斧散,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年供常,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鸡捐。...
    茶點(diǎn)故事閱讀 40,096評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡栈暇,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出箍镜,到底是詐尸還是另有隱情源祈,我是刑警寧澤,帶...
    沈念sama閱讀 35,789評(píng)論 5 346
  • 正文 年R本政府宣布色迂,位于F島的核電站香缺,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏歇僧。R本人自食惡果不足惜图张,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望诈悍。 院中可真熱鬧祸轮,春花似錦、人聲如沸侥钳。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,993評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)舷夺。三九已至苦酱,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間给猾,已是汗流浹背疫萤。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,107評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留敢伸,地道東北人扯饶。 一個(gè)月前我還...
    沈念sama閱讀 48,308評(píng)論 3 372
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像详拙,于是被迫代替她去往敵國(guó)和親帝际。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容