0
点赞
收藏
分享

微信扫一扫

⑪(面试篇 2/3)、《史上最全iOS八股文面试题》2022年,金三银四我为你准备了,iOS《1000条》笔试题以及面试题(包含答案)。带面试你过关斩将,(赶紧过来背iOS八股文)

追梦人的自留地 2022-03-11 阅读 58

请添加图片描述

iOS面试1000题以及答案-笔试题-⑪面试篇 2/3篇

##面试题 400题

⭐️⑪、面试题-第②篇 2/3篇(137题)

1.控制器View生命周期相关函数是什么?你在开发中是如何用的?

⭐️2.请描述NSRunLoop实现机制,及在多线程中如何使用?

3.iOS7之前,后台执行内容有几种形式,都是什么?

4.简单说一下APP启动过程,从main文件开始?

5.把程序自己关掉和程序进入后台远程推送的区别?

6.本地通知远程推送通知的基本概念用法?

7.列举现在熟悉iOS开发库第三方库?

8.有些图片加载的比较慢怎么处理?你是怎么优化程序性能的?

⭐️9.你实现一个框架以供别人使用么?如果有,请谈一谈构建经验;如果没有,请设想和设计框架的API,并指出大需要如何做需要注意一些什么方面?

10.App需要加载超大量的数据,给服务器发送发送请求,但是服务器卡住了如何解决?


11.你在实际开发中,有哪些手机架构性能调试经验

12.即时通讯中的大数据处理

13.如果在网络数据处理过程中,发现一处比较卡,一般怎么解决

14.怎么解决sqlite 锁定的问题?

15.runtime怎么添加属性方法等?

16.runtime如何实现weak属性?

17.runtime如何通过selector找到对应的IMP地址?(分别考虑类方法和实例方法)

18.使用runtime Associate方法关联的对象,需要在主对象dealloc的时候释放么?

19.对象内存销毁 时间表,分哪几个步骤

20._objc_msgForward函数是做什么的?直接调用它将会发送什么


21.能否向编译后得到的找那个增加 实例变量?能否向运行时创建的中添加实例变量?为什么?

22.简述下Objective-C调用方法的过程(runtime)。

23.什么是method swizzling

24.Objective-C类的loadinitialize的区别?

25.对数组中的元素去重复: NSArray *array = @[@“12-11”,@“12-11”,@“12-11”,@“12-12”,@“12-13”,@“12-14”];

26.使用集合对数组中的元素去重复:NSArray *array = @[@“12-11”,@“12-11”,@“12-11”,@“12-12”,@“12-13”,@“12-14”];

27.使用字典对数组中的元素去重复:NSArray *array = @[@“12-11”,@“12-11”,@“12-11”,@“12-12”,@“12-13”,@“12-14”];

28.使用NSSet对数组中的元素去重复:NSArray *array = @[@“12-11”,@“12-11”,@“12-11”,@“12-12”,@“12-13”,@“12-14”];

29.使用NSOrderedSet对数组中的元素去重复:NSArray *array = @[@“12-11”,@“12-11”,@“12-11”,@“12-12”,@“12-13”,@“12-14”];

30.谈谈你对NSArrayNSMutableArray的理解。


31.谈谈你对NSSetNSMutableSet的理解。

32.谈谈你对NSDictionaryNSMutableDictionary的理解。

33.简单描述一下XIBStoryboards,说一下他们的优缺点

34.请把字符串2018-03-11格式化日期转为NSDate类型

35.在App混合HTML5开发App如何实现的。在App中使用HTML5优缺点是什么?

36.请描述一下同步异步,说说它们之间的的区别

37.简述以下iOS的内存管理,在开发中对于内存的使用优化包含哪些方面。我们在开发中应该注意哪些问题。

38.plist文件时用来做什么的。一般用它来处理一些什么方面的问题。

39.iOS中缓存一定量的数据以便下次可以快速执行,那么数据存储在什么地方,有多少种存储方式

40.在提交苹果审核时,遇到哪些问题被拒绝。对于被拒绝的问题是如何处理的?


41.Objective-C Runtime是什么?

42.Method Swizzling原理

43.深浅复制和属性为copystrong值得变化问题。

44.NSTimer创建后,会在哪个线程运行。

45.KVONSNotificationdelegateblock区别是什么?

46.如何让计时器调用一个类方法

47.调用一个静态方法需不需要release?

48.static 作用?

49.使用递归方式,反转二叉树

50.不要使用递归方式,反转二叉树


51.使用objective-C编写一个单例

52.使用Swift编写一个单例

53.iOS应用程序状态有哪些?

54.网络请求中postget的区别?

55.什么是事件响应链 Responder Chain?

56.点击屏幕如何互动的?

57.RunLoop是什么,使用的目的,何时使用关注点

58.RunLoop有哪些作用

59.什么时候使用 RunLoop

60.常见的多线程处理方式优缺点是什么?


61.dispatch_syncdispatch_async 区别是什么?

62.请说明并比较以下关键字__weak__block

63.什么是ARC?

64.以scheduledTImerWithTimeInterval的方式触发的timer,在滑动页面上的列表时,timer会暂停,为什么?如何解决?

65.Swift的(class)和结构体(struct)有什么区别?

66.Swift的class有哪些功能是struct没有的?

67.Swift的struct相对于class有什么优势?

68.Swift是面向对象还是函数式的编程语言?

69.请说明并比较Swift语言中的一些关键词:Open,Public,Internal,File-private,Private?

70.请说明并比较Swift语言的以下关键词:strong,weak,unowned?


71.Swift语言中的weak和unowned的使用场景有哪些差别。

72.调用Swift实现或(||)操作

73.使用Swift实现一个函数。求一个整型二维数组中所有元素之和?

74.说说Swift为什么将String,Array,Dictionary设计成值类型?

75.在Swift和Objective-C的混编项目中,如何在Swift文件中调用Objective-C文件已经定义的方法?如何在Objective-C文件中调用Swift文件中的方法?

76.用Swift将协议(protocol)中的部分方法设计成可选(optional),怎么实现?

77.要给一个UIButton增加一个点击后抖动的效果,该怎样实现?

78.试比较Swift和Objective-C中的初始化方(int)有什么异同?

79.谈谈对Objective-C和Swift动态特性的理解?

80.在一个app中间有一个Button,在你手触摸屏幕点击后,到这个Button受到点击,中间发生了什么?


81.介绍下内存的几大区域?

82.你是如何组件化解耦的?

83.runtime如何通过selector找到对应的IMP地址?

84.runtime内部实现逻辑?

85.GCD执行原理?

86.怎么防止别人反编译你的app?

87.如何优化应用程序的启动速度?

88.如何优化应用程序的页面浏览速度?

89.如何优化应用程序的操作流畅度?

90.如何优化应用程序的客户端和服务端的交互?


91.如何优化应用程序的数据库?

⭐️92.遇到tableview卡顿嘛会造成卡顿的原因大致有哪些?

93.timer准吗?谈谈你的看法?如果不准该怎么实现一个精准的Timer?

94.编译过程做了哪些事情?

95.只有OC对象才需要进行内存管理的本质原因?

96.请介绍一下isa指针,怎么用,用来干嘛?

97.@synthesize和@dynamic 分别有什么作用?

98.KVO的内部实现原理?

99.简述应用程序按Home键进入后台时的生命周期,以及从后台回到前台时的生命周期?

100.NSOPerationQueue相对于GCD来说有哪些优点?


101.runtime如何实现weak变量的自动置nil?

102.常用设计模式及应用场景?

103.UIButton的继承关系?

104.谈一谈你对UITableview的优化和重用的理解?

105.圆角图片如何优化?

106.什么是死锁,如何防止死锁?

107.block为什么要修饰为copy?

108.block循环引用,block分配在栈还是堆,什么情况下block会从栈区复制到堆区?

109.OC如何调用js代码;js调用OC的代码?

110.应用之间如何唤起?


111.NSString为什么用copy修饰?

112.JSPath使用了iOS的什么原理?

113.使用drawRect有什么影响?

114.C和Objective-C如何混用?

115.谈谈你对静态链接库的理解?

116.谈谈你对fmmpeg框架的理解?

117.谈谈你对fmdb框架的理解?


118.什么是沙盒模型Sandbox?

119.沙盒模型的四个文件夹,分别是什么,永久数据存储一般放在什么位置,得到模拟器的路径的简单方式是什么?

120.你使用过json解析方法么,它们的底层是如何处理的你了解么?


121.xml解析的原理是什么,你还用过其他解析方式么?

122.你在开发大型项目的时候,如何进行内存泄露检测的?

123.让一个物体从界面中的一点运动到另一点,有哪些方法?

124.以下每行代码执行后,person对象的retain count分别是多少?

125.在一个对象的方法里面:self.name = “object” 和 name = “object” 有什么不同吗?

126.谈谈您对@synthesize、@dynamic的理解?

127.什么是设计模式?聊聊你所知道的设计模式。

128.请谈谈数组和链表的区别。

129.请谈谈你对顺序查找算法的看法?

130.请谈谈你对二分查找(拆半查找)算法的看法?


131.请谈谈你对二叉树查找算法的看法?

132.请谈谈你对哈希表法(散列表)的看法?

133.请谈谈你对分块查找算法的看法?

134.UITableviewCelll上有个UILabel,显示NStimer实现的秒表事件,手指滚动cell过程中,label是否刷新,为什么?

135.什么情况使用weak关键,相比assign有什么不同?

136.怎么用copy关键字?

137.这个写法会出现什么问题:@property(copy)NSMutableArray *array?

举报

相关推荐

java八股文面试题

0 条评论