iOS面试题集合

1.介绍iOS设计模式MVC,MVVM, MVP以及它们之间的区别?

2.简述内存管理

3.#import和#include的区别?#import和@class的区别?

4.介绍深复制和浅复制

5.为什么说oc是一门动态语言

6.介绍runtime机制

7简述.kvo和kvc的原理

8.代理和block的作用与区别

9.开发中都使用什么三方库

10.iOS的几种存储方式

11.iOS 的传值方式

12.简述事件响应者链

13.UITableview的优化方法(缓存高度,异步绘制,减少层级,hide,避免离屏渲染)

14.UIView和CALayer是啥关系

15.谈下Objective C都有哪些锁机制,你一般用哪个

16.简述ViewController的几个生命周期

17.定义属性的时候,什么情况使用copy、assign和retain

18.沙盒中一共有几个文件夹,请简述它们的作用?

19.多线程的优点和缺点分别是什么?

20.简述runloop机制

21.简单描述一下SDWebImage的原理和实现机制,以及SDWebImage的底层实现。

22.简述__weak和__block修饰符的区别。

23.@property的本质是什么?

24.+(void)load和 +(void)initialize 分别在什么时候被调用?

25.frame 和 bounds 的区别是什么?

26.什么是进程?什么是线程?iOS多线程有几种,你平常开发喜欢用那种?

27.说一下属性nonatomic与atomic区别,atomic是绝对安全的吗?谈谈你的看法。

28.说一下分类的实现原理,分类为什么会覆盖原类的方法?

29.NS_ENUM VS. NS_OPTIONS的区别

30.内存泄露的几种情况分析

31.简述oc消息发送和转发机制

32.instancetype和id的区别

33.简述tcp与udp

34.get和post区别

35.属性的实质是什么?包括哪几个部分?属性默认的关键字都有哪些?@dynamic关键字和@synthesize关键字是用来做什么的?

36.可变集合类 和 不可变集合类的 copy 和 mutablecopy有什么区别?如果是集合是内容复制的话,集合里面的元素也是内容复制么?

37.进程和线程的区别?同步异步的区别?并行和并发的区别?

38.线程间通信?

39. block的实质是什么?一共有几种block?都是什么情况下生成的?

40.runloop是来做什么的?runloop和线程有什么关系?主线程默认开启了runloop么?子线程呢?

41.类方法和实例方法有什么区别?

42.AFN为什么添加一条常驻线程?

你可能感兴趣的:(iOS面试题集合)