高级iOS面试题有哪些

发布时间:2021-11-15 11:24:09 作者:iii
来源:亿速云 阅读:107

这篇文章主要介绍“高级iOS面试题有哪些”,在日常操作中,相信很多人在高级iOS面试题有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”高级iOS面试题有哪些”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

1、NSArray与NSSet的区别?

2、NSHashTable与NSMapTable?

(注:NSHashTable与NSSet的区别:NSHashTable可以通过option设置元素弱引用/copyin,只有可变类型。但是添加对象的时候NSHashTable耗费时间是NSSet的两倍。
NSMapTable与NSDictionary的区别:同上)

3、属性关键字assign、retain、weak、copy

4、weak属性如何自动置nil的?

5、Block的循环引用、内部修改外部变量、三种block

6、KVO底层实现原理?手动触发KVO?swift如何实现KVO?

7、categroy为什么不能添加属性?怎么实现添加?与Extension的区别?category覆盖原类方法?多个category调用顺序

8、load方法和initialize方法的异同。——主要说一下执行时间,各自用途,没实现子类的方法会不会调用父类的?
load initialize 调用时机 app启动后,runtime初始化的时候 第一个方法调用前调用 调用顺序 父类->本类->分类 父类->本类(如果有分类直接调用分类,本类不会调用) 没实现子类的方法会不会调用父类的 否 是 是否沿用父类实现 否 是

高级iOS面试题有哪些

image

9、对 runtime 的理解。——主要是方法调用时如何查找缓存,如何找到方法,找不到方法时怎么转发,对象的内存布局

OC中向对象发送消息时,runtime会根据对象的isa指针找到对象所属的类,然后在该类的方法列表和父类的方法列表中寻找方法执行。如果在最顶层父类中没找到方法执行,就会进行消息转发:Method resoution(实现方法)、fast forwarding(转发给其他对象)、normal forwarding(完整消息转发。可以转发给多个对象)

10、runtime 中,SEL和IMP的区别?

每个类对象都有一个方法列表,方法列表存储方法名、方法实现、参数类型,SEL是方法名(编号),IMP指向方法实现的首地址

11、autoreleasepool的原理和使用场景?

高级iOS面试题有哪些

image

12、Autorelase对象什么时候释放?

在没有手加Autorelease Pool的情况下,Autorelease对象是在当前的runloop迭代结束时释放的,而它能够释放的原因是系统在每个runloop迭代中都加入了自动释放池Push和Pop。

13、Runloop与线程的关系?Runloop的mode? Runloop的作用?内部机制?

14、iOS中使用的锁、死锁的发生与避免

15、NSOperation和GCD的区别

16、oc与js交互

17、swift相比OC有什么优势?

18、struct、Class的区别

19、访问控制关键字(public、open、private、filePrivate、internal)

20、OC与Swift混编

21、map、filter、reduce?map与flapmap的区别?

高级iOS面试题有哪些

image

22、guard与defer

23、try、try?与try!

24、@autoclosure:把一个表达式自动封装成闭包

25、throws与rethrows:throws另一个throws时,将前者改为rethrows

26、App启动优化策略?main函数执行前后怎么优化

27、crash防护?

28、内存泄露问题?

主要集中在循环引用问题中,如block、NSTime、perform selector引用计数问题。

29、UI卡顿优化?

30、架构&设计模式

31、数据结构&算法

32、计算机基础

  1. http与https?socket编程?tcp、udp?get与post?

  2. tcp三次握手与四次握手

  3. 进程与线程的区别

到此,关于“高级iOS面试题有哪些”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

推荐阅读:
  1. PHP高级面试题
  2. android中高级面试题有哪些

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

ios

上一篇:DevOps与Agile有什么共同点

下一篇:Elasticsearch对垒的竞品技术有哪些

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》