美文网首页
iOS 高频面试题

iOS 高频面试题

作者: godgnay | 来源:发表于2020-07-26 20:09 被阅读0次

面试题速测,Objective-C 精简版,题目链接知乎上一套题

这套题比较常用,涵盖面可以、内容也精简,题目链接

这套题内容过多,可以当成学习资料翻一翻,题目链接

一、基础题

1. 说说 iOS 开发中常用的数据类型

2. 根据基础数据类型扩展到 @property 相关问题,@property 本质是什么,常用的修饰符是哪些。

3. 根据修饰符的答案扩展到 weak 和 strong 的区别,weak 和 assign 的区别,copy 和 strong 的区别,weak 的使用场景, copy 的使用场景,引申讲讲 weak 的具体实现原理。

4. 根据 copy 的使用场景引申到 深拷贝、浅拷贝,自定义的类想要支持 copy 方法需要做什么。

@property (nonatomic, copy) NSMutableArray *mArray; 这样写会有问题吗?

5. 可能会引申到 block 相关的内容,因为 block 通常就是 copy 修饰的,这是为什么呢。block 有几种,使用的时候注意的点比如说循环引用,如果想要修改一个 int 的临时变量该怎么做。

6. iOS 开发中常用的设计模式有哪些,通知(观察者)、代理、单例、工厂等,通知和代理有什么区别,单例的具体实现方式。

7. 有使用过 KVO/KVC 吗?讲讲 KVO 的实现原理,讲讲 KVC 的实现原理,KVC 会不会触发 KVO ,直接修改成员变量的值会不会触发 KVO,如何手动触发 KVO

8. 有没有使用过定时器,一般有哪几种,NSTimerCADisplayTimerGCDTimer,NSTimer 使用要注意的点比如说滑动页面时 NSTimer 会不会停止。NSTimer 会不会循环引用引起内存泄漏。NSTimer 添加到子线程会怎么样,NSTimer 一般有几种初始化方式呢?

9. 说说分类(category)、扩展(extension)的区别,分类里能添加成员变量吗?property属性呢?引伸到关联对象(associated)的 支持几种修饰符类型 ,weak 怎么实现(参考实现),是否需要自己处理释放。

10. 平时有使用多线程处理吗?iOS有几种常用的API,多线程使用过程中需要注意点什么,有用过锁吗,NSThread、 NSOperation、GCD的介绍及使用,atomic 的问题及锁的扩展知识。

11. NSNotificationCenter子线程发送通知的问题,使用 block 初始化方案时页面释放问题。

二、进阶

12. 为什么说 Objective-C 是一门动态运行时语言,说说运行时(runtime)和应用启动相关的内容,isa 指针的理解,说说 Objective-C 消息发送机制、消息转发,runtime 的日常开发的具体应用模拟KVO ,方法交换的高级使用 ),load 和 initialize 的使用和区别。

13. 说说 runloop 和多线程的关系,runloop 的运行机制和内部实现,GCD 和 runloop 的关系,AFNetwork 和 runloop 的关系。

14. iOS 的内存管理方式,MRC 和 ARC 的区别,@autoreleasepool 的使用和实现原理、以及什么时候释放。

15. 有使用过 performSelector 和 performSelector:·afterDelay:,说说区别以及在子线程调用这个两个方法的结果。

16. iOS 事件传递和响应者链,如果有一个 viewB 超出了它的父 viewA 的边界如何响应点击事件

17. 你理解的 http 和 https,描述下 TCP 三次握手和四次挥手 为什么要这样设计,简单说下 GET 和 POST 的区别。

18. iOS 中的哈希(Hash)。

19. Objective-C 和 Swift 的一些区别和理解

20. iOS 静态库、动态库、framework 的一些区别和理解

21. 为什么要在主线程更新UI,UITableView的卡顿优化,检测界面卡顿,UIViewController的完整生命周期,frame 和 bounds 的区别

相关文章

网友评论

      本文标题:iOS 高频面试题

      本文链接:https://www.haomeiwen.com/subject/sbvwlktx.html