大企面试现场,最新笔试题分享,小编也不断收到网友们投稿(现场笔试实拍)php
持续关注:logic_楚阳,持续输出各大公司iOS面试系列文章,欢迎广大程序猿找我投稿面试中碰到的面试题,我会给你一份个人看法和答案,前面已经分享100道我招聘的面试题,加入下方iOS技术交流群624212887直接获取;node
答案:面试
//广度优先遍历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); //再将左子树压栈 } } }
答案:算法
NSString 请使用copynonatomicxcode
int uid 仍是须要关键词assign网络
NSMutableArray请使用strong布局
答案:优化
当时打包的时候会有一个文件dsym文件,每次线上的版本能够根据当时的文件,会有一个内存地址,根据当时的地址用xcode的命令就能够在大部分状况能够直接定位到问题所在ui
unrecognizedatom
selector 根据崩溃的日志,能够找到对应的类和响应的调用的方法,而后根据所调用的方法,在现有的代码体系中,根据现有代码的逻辑去检查是否在某些状况下会出现崩溃的问题
BAD_ACCES 可根据以前的命令找到以前的崩溃所在的代码行
答案:
常见的界面卡顿,通常是在主线程中作了一些耗时的操做。好比网络请求,大量的数据存储,计算,还有就是过于复杂的界面绘制等等。
解决的办法是:首先在能够考虑加上卡顿监控,监控每个方法的执行时间。而后找到对应的卡顿的方法,每一个方法的实际执行时间,若是时间过长就要去看看该方法是否能够在子线程执行,或者能不能在子线程执行完毕将结果回调到主线程。
另外绘制界面的时候就须要尽可能少使用圆角裁剪,透明色。界面布局的时候尽可能使用代码布局。