iOS面试题大全(上)附答案

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

(答案不唯一,仅供参考,欢迎留言)

iOS面试题大全(下)

目录:

10、数据库选择原因(realm 、coreData、FMDB、Sqlite)

11、数据库做过哪些优化

12、脚本打包原理

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

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

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

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

17、iOS atomatic nonatomic区别和理解

18、#import 跟 #include 有 什 么 区 别 , @class 呢 , #import<> 跟 #import” ”有什么区别?

19、Object-c 的类可以多重继承么?可以实现多个接口么?Category 是什 么?重写一个类的方式用继承好还是分类好?为什么?

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

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

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

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

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

25、ObjectC 中创建线程的方法是什么?如果在主线程中执行代码,方 法是什么?如果想延时执行代码、方法
又是什么?

26、浅复制和深复制的区别?

27、类别的作用?继承和类别在实现中有何区别?

28、类别和类扩展的区别

29、我们说的 OC 是动态运行时语言是什么意思?

30、类变量的@protected,@private,@public,@package,声明各有什么 含义?

31、简述 OC 中内存管理机制。与 retain 配对使用的方法是 dealloc 还 是 release,为什么?需要与 alloc 配对使用的方法是 dealloc 还是 release,为什么…

32、说说响应链

33、线程是什么?进程是什么?二者有什么区别和联系?

34、RunLoop 是什么?

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

36、iOS 的动态性

37、谈谈对性能优化的看法,如何做?

38、NSAutoreleasePool 是怎么工作的?

39、什么情况使用 weak 关键字,相比 assign 有什么不同?

40、runtime 如何实现 weak 属性?

41、怎么用 copy 关键字?

42、用 @property 声明的 NSString(或 NSArray,NSDictionary)经常使用 copy 关键字,为什么?如果改
用 strong 关键字,可能造成什么问题?

43、怎么理解浅拷贝与深拷贝?

44、如何让自己的类用 copy 修饰符?

45、@property 的本质是什么?

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

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

48、@synthesize 和 @dynamic 分别有什么作用?

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

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

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

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

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

54、objc_msgSend、_objc_msgForward 都是做什么的?OC 中的消息调用流程是怎样的?

55、能否向编译后得到的类中增加实例变量?能否向运行时创建的类中添加实例变量?为什么?

56、runloop 和线程有什么关系?

57、runloop 的 mode 作用是什么?

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

59、猜想 runloop 内部是如何实现的?

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

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

62、ARC 通过什么方式帮助开发者管理内存?

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

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

65、如何实现 autoreleasepool 的?

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

67、dispatch_barrier_async 的作用是什么?

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

69、BAD_ACCESS 在什么情况下出现?

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

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

72、什么是事件响应链?

73、当我们要做一些基于 CALayer 的动画时,有时需要设置 layer 的锚点来配合动画,这时候我们需要注意什么?

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

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

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

77、load 和 initialize 方法的区别?

78、如何优化 App 的的包大小?

79、struct和class的区别

80、介绍一下观察者模式

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

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

83、循环引用的产生原因,以及解决方法

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

85、NSNotification、Block、Delegate和KVO的区别

86、static、self、super关键字的作用

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

88、Core Data的6成员对象

89、Core Data的功能

90、堆和栈的区别

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

92、多线程编程

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

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

95、如何自己高效实现NSUserdefault?

96、解析TCP慢启动特性?

97、如何用HTTP实现长连接?

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

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

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


iOS面试题大全(下)

猜你喜欢

转载自blog.csdn.net/qq_42792413/article/details/93117972