2019年,精选大厂iOS面试题(附答案)

这个栏目将持续更新--请iOS的小伙伴关注!

(答案不惟一,欢迎留言)面试

一、多线程的应用objective-c

二、GCD实现多个请求都完成以后返回结果数据库

三、A、B两个int数组,获得A数组中B数组不包含的元素编程

四、事件传递链,页面上一个按钮,按钮和它的superView有同样的action,为何只执行button的action?数组

五、runtime的应用性能优化

六、array中加入对象,对象的retainCount会加1 如何是的对象本身管理本身的生命周期服务器

七、bugly的卡顿监控原理多线程

八、如何架构一个app架构

九、c中,malloc对象,传入了size,free只须要指针,这是为何?并发

十、数据库选择缘由(realm 、coreData、FMDB、Sqlite)

十一、数据库作过哪些优化

十二、脚本打包原理

1三、app运行过程当中,同时最多有几个线程,怎么实现的高并发

1四、iOS应用导航模式有哪些?

1五、iOS中持久化方式有哪些?

1六、iOS单元测试框架有哪些?

1七、iOS atomatic nonatomic区别和理解

1八、[#import 跟 #include 有 什 么 区 别 , @class 呢 , #import<> 跟 #import” ”有什么区别?](https://www.jianshu.com/p/03f4cd6e7ed4)

1九、Object-c 的类能够多重继承么?能够实现多个接口么?Category 是什 么?重写一个类的方式用继承好仍是分类好?为何?

20、属性 readwrite,readonly,assign,retain,copy,nonatomic 各是 什么做用,在那种状况下用?

2一、对于语句 NSString*obj=[[NSDataalloc]init];obj 在编译时和运行时 分别时什么类型的对象?

2二、常见的 objective-c 的数据类型有那些, 和 C 的基本数据类型有什 么区别?如:NSInteger 和 int

2三、Objective-C 如何对内存管理的,说说你的见解和解决方法?

2四、原子(atomic)跟非原子(non-atomic)属性有什么区别?

2五、ObjectC 中建立线程的方法是什么?若是在主线程中执行代码,方 法是什么?若是想延时执行代码、方法又是什么?

2六、浅复制和深复制的区别?

2七、类别的做用?继承和类别在实现中有何区别?

2八、类别和类扩展的区别

2九、咱们说的 OC 是动态运行时语言是什么意思?

30、[类变量的@protected,@private,@public,@package,声明各有什么 含义?](https://www.jianshu.com/p/ec402bed50d3)

3一、简述 OC 中内存管理机制。与 retain 配对使用的方法是 dealloc 还 是 release,为何?须要与 alloc 配对使用的方法是 dealloc 仍是 release,为何...

3二、说说响应链

3三、线程是什么?进程是什么?两者有什么区别和联系?

3四、RunLoop 是什么?

3五、简述你对 UIView、UIWindow 和 CALayer 的理解

3六、iOS 的动态性

3七、谈谈对性能优化的见解,如何作?

3八、NSAutoreleasePool 是怎么工做的?

3九、什么状况使用 weak 关键字,相比 assign 有什么不一样?

40、runtime 如何实现 weak 属性?

4一、怎么用 copy 关键字?

4二、用 @property 声明的 NSString(或 NSArray,NSDictionary)常用 copy 关键字,为何?若是改用 strong 关键字,可能形成什么问题?

4三、怎么理解浅拷贝与深拷贝?

4四、如何让本身的类用 copy 修饰符?

4五、@property 的本质是什么?

4六、@protocol 和 category 中如何使用 @property?

4七、category 和 extension 有什么区别?category 是如何加载的?category 的方法覆盖是怎么处理的?

4八、@synthesize 和 @dynamic 分别有什么做用?

4九、ARC 下,不显式指定任何属性关键字时,默认的关键字都有哪些?

50、在有了自动合成属性实例变量以后,@synthesize 还有哪些使用场景?

5一、一个 objc 对象如何进行内存布局(考虑有父类的状况)?

5二、runtime 如何经过 selector 找到对应的 IMP 地址(分别考虑实例方法和类方法)?Selector、Method 和 IMP 的有什么区别与联系?

5三、objc 中的类方法和实例方法有什么本质区别和联系?

5四、objc_msgSend、_objc_msgForward 都是作什么的?OC 中的消息调用流程是怎样的?

5五、可否向编译后获得的类中增长实例变量?可否向运行时建立的类中添加实例变量?为何?

5六、runloop 和线程有什么关系?

5七、runloop 的 mode 做用是什么?

5八、以 + scheduledTimerInterval... 的方式触发的 timer,在滑动页面上的列表时,timer 会暂定回调,为何?如何解决?WithTime

5九、猜测 runloop 内部是如何实现的?

60、聊一聊iOS 中的离屏渲染?

6一、objc 使用什么机制管理对象内存?

6二、ARC 经过什么方式帮助开发者管理内存?

6三、iOS 开发中常见的内存问题有哪些?

6四、一个 autorealese 对象在什么时刻释放?

6五、如何实现 autoreleasepool 的?

6六、如何用 GCD 同步若干个异步调用?

6七、dispatch_barrier_async 的做用是什么?

6八、如何手动触发一个 value 的 KVO?

6九、BAD_ACCESS 在什么状况下出现?

70、动态计算文本高度的时候须要注意什么?

7一、如何优化 App 的启动耗时?

7二、什么是事件响应链?

7三、当咱们要作一些基于 CALayer 的动画时,有时须要设置 layer 的锚点来配合动画,这时候咱们须要注意什么?

7四、聊一聊 TCP 的滑动窗口协议?

7五、聊一聊 TCP 的拥塞控制相关过程?

7六、聊一聊你知道的几种查找树?

7七、load 和 initialize 方法的区别?

7八、如何优化 App 的的包大小?

7九、struct和class的区别

80、介绍一下观察者模式

8一、在一个HTTPS链接的网站里,输入帐号密码点击登陆后,到服务器返回这个请求前,中间经历了什么

8二、在一个app中间有一个button,在你手触摸屏幕点击后,到这个button收到点击事件,中间发生了什么

8三、循环引用的产生缘由,以及解决方法

8四、键路径(keyPath)、键值编码(KVC)、键值观察(KVO)

8五、NSNotification、Block、Delegate和KVO的区别

8六、static、self、super关键字的做用

8七、iOS开发中数据持久性有哪几种?

8八、Core Data的6成员对象

8九、Core Data的功能

90、堆和栈的区别

9一、线程与进程的区别和联系?

9二、多线程编程

9三、NSString 如何计算字符的个数?

9四、PKI体系中加密和签名的区别?

9五、如何本身高效实现NSUserdefault?

9六、解析TCP慢启动特性?

9七、如何用HTTP实现长链接?

9八、数据库建表的时候索引有什么用?

9九、iOS下如何实现指定线程数目的线程池?

100、谈下Objective C都有哪些锁机制,你通常用哪一个?

持续更新,请多多关注


更多:iOS面试题(附答案)


另外附上一份pdf的面试题大全,以及收集的各大厂面试题 ! 要的加iOS高级技术群:624212887,群文件直接获取

以下图所示:

iOS面试题大全

iOS面试题大全

iOS面试题合集

相关文章
相关标签/搜索