最新名企招聘現場,現場實拍筆試部分

大企面試現場,最新筆試題分享,小編也不斷收到網友們投稿(現場筆試實拍)php

 

圖片描述

 

持續關注:logic_楚陽,持續輸出各大公司iOS面試系列文章,歡迎廣大程序猿找我投稿面試中碰到的面試題,我會給你一份個人看法和答案,前面已經分享100道我招聘的面試題,加入下方iOS技術交流羣624212887直接獲取;node

題一:針對如下二叉樹進行廣度遍歷(ABCDEFG)和深度遍歷(ACGFBED)。描述算法思惟或者僞代碼實現便可

圖片描述

答案:面試

//廣度優先遍歷void breadthFirstSearch(Tree root){     queue nodeQueue;   //使用C++的STL標準模板庫    nodeQueue.push(root);     Node *node; while(!nodeQueue.empty()){         node = nodeQueue.front();         nodeQueue.pop();         printf(format, node->data); if(node->lchild){             nodeQueue.push(node->lchild);   //先將左子樹入隊        } if(node->rchild){             nodeQueue.push(node->rchild);   //再將右子樹入隊        }     } }  //深度優先遍歷void depthFirstSearch(Tree root){     stack nodeStack;   //使用C++的STL標準模板庫    nodeStack.push(root);     Node *node; while(!nodeStack.empty()){         node = nodeStack.top();         printf(format, node->data);   //遍歷根結點        nodeStack.pop(); if(node->rchild){             nodeStack.push(node->rchild);   //先將右子樹壓棧        } if(node->lchild){             nodeStack.push(node->lchild);   //再將左子樹壓棧        }     } }

題二:閱讀下面一段代碼(model 類) 提出你全部的改進建議和代碼風格。

圖片描述

答案:算法

NSString 請使用copynonatomicxcode

int uid 仍是須要關鍵詞assign網絡

NSMutableArray請使用strong佈局

題三:針對常見的崩潰錯誤,有什麼好的調試方法?(例如:unrecognized selector和BAD_ACCES)針對線上版本的崩潰錯誤,如何進行跟蹤調試?

答案:優化

當時打包的時候會有一個文件dsym文件,每次線上的版本能夠根據當時的文件,會有一個內存地址,根據當時的地址用xcode的命令就能夠在大部分狀況能夠直接定位到問題所在ui

unrecognizedatom

selector 根據崩潰的日誌,能夠找到對應的類和響應的調用的方法,而後根據所調用的方法,在現有的代碼體系中,根據現有代碼的邏輯去檢查是否在某些狀況下會出現崩潰的問題

BAD_ACCES 可根據以前的命令找到以前的崩潰所在的代碼行

題四:針對常見的界面卡頓現象,闡述你以爲可能的各類緣由,以及對應的優化方案。

答案:

常見的界面卡頓,通常是在主線程中作了一些耗時的操做。好比網絡請求,大量的數據存儲,計算,還有就是過於複雜的界面繪製等等。

解決的辦法是:首先在能夠考慮加上卡頓監控,監控每個方法的執行時間。而後找到對應的卡頓的方法,每一個方法的實際執行時間,若是時間過長就要去看看該方法是否能夠在子線程執行,或者能不能在子線程執行完畢將結果回調到主線程。

另外繪製界面的時候就須要儘可能少使用圓角裁剪,透明色。界面佈局的時候儘可能使用代碼佈局。

相關文章
相關標籤/搜索