博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
经过阿里,百度一面,二面后,我总结了50道iOS面试题
阅读量:6682 次
发布时间:2019-06-25

本文共 2037 字,大约阅读时间需要 6 分钟。

经过阿里,百度一面,二面后,我总结了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对象在什么时刻释放?(比如在一个vc的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内购中虚拟货币导致审核无法通过的问题?

最后希望各位同学都能进入自己想要去的公司,在奋斗的这条路上,我坚信我们一直都没有放弃!

答案获取:1、喜欢小编简书这篇文章

2、加小编的qq交流群:776598941、即可找到小编免费获取.复制代码

分享目的是为了寻找志同道合的朋友一起创建一个我们自己的程序员圈子,有意者请联系作者,让我们一起搭建一个属于我们iOS开发者的私有圈子,内推、共享资源。

部分答案截图:

转载于:https://juejin.im/post/5b39e289f265da5963330506

你可能感兴趣的文章
mysql实时记录客户端提交的sql语句
查看>>
多线程学习笔记(五)
查看>>
pyspider爬虫学习-教程3-Render-with-PhantomJS.md
查看>>
107个常用Javascript语句
查看>>
关联表更新
查看>>
Java递归拷贝文件夹
查看>>
从Java到C++——从union到VARIANT与CComVariant的深层剖析
查看>>
java使用jeids实现redis2.6的list操作(3)
查看>>
Android简单框架会用到的基类(2)
查看>>
flask sqlalchemy多个外键引用同张表报错sqlalchemy.exc.AmbiguousForeignKeysError
查看>>
在 CentOS6 上安装 Python 2 & 3
查看>>
svnserver配置文件详解
查看>>
Mybatis之动态SQL语句
查看>>
文件上传利器SWFUpload使用指南
查看>>
jdbc性能优化
查看>>
linux下activemq异常退出,重启失败
查看>>
WordPress条件判断标签(Conditional Tags)手册
查看>>
【05】中级:翻页采集(以微博博主主页采集为例)
查看>>
iOS不规则按钮的响应事件的处理方法
查看>>
Linux下密码过期时间设置
查看>>