经过阿里,百度一面,二面后,我总结了50道iOS面试题
经过阿里,百度一面,二面后,我总结了50道ios面试题。
金三银四已经过去,根据统计,很多人都会选择在三月四月跳槽,原因有很多,企业年后会有大量员工离职,员工觉得老公司待遇不怎么样?薪资不够高,想换个新环境等等原因,所以,三月四月份就变成了招聘与跳槽的旺季。
前面一段时间自己的一面二面,自己总结了50道面试题,在此,我分享给大家,希望大家在五月份要找工作的朋友,我的这篇文章能给你有所帮助。
基础:
1、如何令自己所写的对象具有拷贝功能?
2、说说你理解weak属性?
3、题目:swift mutating关键字的使用?
4、uiview和calayer是什么关系?
5、下面的代码输出什么?
6、@synthesize 和 @dynamic 分别有什么作用?
7、动态绑定
8、category(类别)、 extension(扩展)和继承的区别
9、为什么代理要用weak?代理的delegate和datasource有什么区别?block和代理的区别?
10、id和nsobject*的区别
11、如何令自己所写的对象具有拷贝功能?
12、使用的某些block api(如uiview的block版本写动画时),是否也考虑引用循环问题?
13、用@property声明的nsstring(或nsarray,nsdictionary)经常使用copy关键字,为什么?如果改用strong关键字,可能造成什么问题?
14、uiview和 calayer是什么关系?
15、static有什么作用?
底层:
16、main()之前的过程有哪些?
17、kvo基本原理?
18、swift 下的如何使用 kvc?
19、:swift有哪些模式匹配?
20、objc在向一个对象发送消息时,发生了什么?
21、静态库的原理是什么?你有没有自己写过静态编译库,遇到了哪些问题?
22、runloop是来做什么的?runloop和线程有什么关系?主线程默认开启了runloop么?子线程呢?
23、不手动指定autoreleasepool的前提下,一个autorealese对象在什么时刻释放?(比如在一个的viewdidload中创建
24、不手动指定autoreleasepool的前提下,一个autorealese对象在什么时刻释放?(比如在一个vc的viewdidload中创建)
25、oc完整的消息转发机制+代码实现【暴击】
26、、以+ scheduledtimerwithtimeinterval...的方式触发的timer,在滑动页面上的列表时,timer会暂定回调,为什么?如何解决?
27、如何手动触发一个value的kvo
28、如何对定位和分析项目中影响性能的地方?以及如何进行性能优化?
29、串行并行,异步同步的区别?
30、线程是什么?进程是什么?二者有什么区别和联系?
31、runloop是什么?
32、假设有一个字符串aabcad,请写一段程序,去掉字符串中不相邻的重复字符串,即上述字符串处理之后的输出结果为:aabcd
@autoclosure(自动闭包)
34、ios app启动如何优化?
35、swift面试题:
36、怎样防止反编译?
37、uitableview性能优化,超实用
线程:
37、 不要阻塞主线程
38、谈谈你对多线程开发的理解?ios中有几种实现多线程的方法?
39、进程和线程的区别?同步异步的区别?并行和并发的区别?
40、viewcontroller生命周期
41、ios 中的多线程
42、内存管理的几条原则时什么?按照默认法则.那些关键字生成的对象
需要手动释放?在和property结合的时候怎样有效的避免内存泄露?
谁申请,谁释放
43、dispatch_barrier_async的作用是什么?
44、如何用gcd同步若干个异步调用?(如根据若干个url异步加载多张图片,然后在都下载完成后合成一张整图)
http:
46、http与https的区别?
47、服务器能否知道apns推送后有没有到达客户端的方法?
app:
48、1.什么方式可以看到上架app的头文件?
2.过哪些框架的?能说说它的架构方式吗
49、ios iap内购审核可能失败的问题
50、iap内购中虚拟货币导致审核无法通过的问题?
最后希望各位同学都能进入自己想要去的公司,在奋斗的这条路上,我坚信我们一直都没有放弃!
上一篇: MySQL表更新数据操作命令