iOS常见面试题

一、ARC下怎么检查内存泄漏,你遇到最多的内存泄漏原因是什么?

无固定答案,主要是看她是否遇到过这个问题。

二、如何实现在其他应用分享内容到自己应用?

这个是iOS8的扩展,主要看他是不是使用过扩展;

如果回答上就问知道哪些扩展,如果没有回答上请慎重考虑此人。

三、泛型带给你代码哪些改变?

能够避免出现数组中对象误存的情况,代码可读性也很高;如果不知泛型是什么请慎重考虑此人。

四、NSMutableArray用strong和copy的区别,以及使用场景?

strong只是持有引用,用copy会自己拷贝一份不可变的数组。

五、界面实时刷新解决方案,你是怎么解决这个问题的?

通知,数据库等都可以;

答通知的问如果很多对象怎么办;

答数据库的是一个爱思考的人。

六、本地数据库你使用过哪些,如何选择?

很多数据库;

如果答了realm,就问realm你是如何看待不可跨线程这个问题的;

如果答了CoreData,你就问他用过FretchedResultsController么,如果用过,说明他不错;

如果只知道FMDB,请慎重考虑。

七、如何实现本地定时备份数据?

要实现这个必须是应用一直运行状态,看如何回答,没答道这点请慎重考虑。

八、你用过runtime哪些方法?

动态添加属性,检查对象是否能响应方法等。

九、现在如果有一个需求,就是如果收到系统消息的推送,让你在项目最顶层弹窗,你会怎么实现?

主要看是否真的完整做过项目,完整做过的回答会比较流畅。

十、你看过哪些流行库的源代码,从中学习到什么?

主要看他是不是喜欢研究技术,随便能答上一个就行;

比如:MJExtention里面用到了运行时找对象的属性列表。

十一、第三方推送和自己服务器做推送的区别,以及交互?

第三方推送完成了自己服务器做推送的功能,使得自己是个第三方交互,而不是和自己的服务器;然后第三方会和苹果推送进行交互。

十二、你是如何解决键盘遮挡输入视图的?

可以自己加键盘通知,也可以使用第三方库;

如果回答自己加通知,就问如何加的;

如果说使用第三方库,就问自己做如何做,如果不知道请慎重考虑;

十三、能在自己应用中跳转到其他应用么?怎么做的?

能,找到其他应用的Schmes,用UIApplication的openURL跳转;

如果回答不能,请慎重考虑;

十四、有的库要使用MRC的,你怎么适配?

一般现在应用是面向ARC的,所以对于需要MRC的文件我们会在Compile Sources中找到对应文件加上-fno-objc-arc

十五、iOS扩展


《招聘一个靠谱的iOS》面试题参考答案

你可能感兴趣的:(iOS常见面试题)