半年努力,我终于把这100家企业iOS面试题整理完了(附答案)!

####100家知名企业今年来iOS面试题合集:

你要的这里都有;

企业要的这里也有;

从基础开始到进阶、深入底层

整理出188个面试题,全是干货

这些全部是题目跟类目,每个题目都会有相对的答案,由于字数太多所以我整理出一个文档,文档获取地址,作者创建的iOS行业交流群:763164022,加群在群文件下载

####目录展示:

1、swift和oc的区别
2、编译链接
3、synthesize & denamic
4、在项目开发中常用的开发工具有哪些?
5、UITableView & UICollection
6、NSProxy & NSObject
7、Object & Swift
8、传值通知 & 推送通知(本地&远程)
9、第三方库 & 第三方平台
10、NSCache & NSDcitionary
11、 UIView的setNeedsDisplay和setNeedsLayout方法
12、UILayer & UIView
13、layoutSubViews & drawRects
14、UDID & UUID
15、CPU & GPU
16、点(pt)& 像素(px)br/>17、属性与成员变量
18、int和NSInteger的区别
(1)import和include
(2)@class
(3)全局 & 静态变量

19、类和对象
(1)分类拓展协议中哪些可以声明属性?
(2)继承和类别的区别
(3)分类的作用
(4)分类的局限性

20、category & extension
21、Foundation
(1)字符串
(2)字符串截取
(3)格式

22、NSArray和NSDictionary
(1)iOS遍历数组/字典的方法
(2)NSValue NSNumber
(3)其它
(4)如何避免循环引用

23、CFSocket使用有哪几个步骤
24、Core Foundation中提供了哪几种操作Socket的方法?
25、解析XML文件有哪几种方式?
26、什么是沙盒模型?哪些操作是属于私有api范畴?
27、在一个对象的方法里面:self.name= “object”;和 name =”object” 有什么不同吗?
28、请简要说明viewDidLoad和viewDidUnload何时调用
29、创建控制器、视图的方式
30、简述内存分区情况
31、队列和栈有什么区别
32、iOS的系统架构
33、控件主要响应3种事件
34、xib文件的构成分为哪3个图标?都具有什么功能
35、简述视图控件器的生命周期
36、app 项目的生命周期
(1)应用的生命周期
(2)简要说明一下APP的启动过程,main文件说起,main函数中有什么函数?作用是什么?
(3)UIApplicationMain函数作用
(4)main函数作用

37、 动画有基本类型有哪几种;表视图有哪几种基本样式。
38、实现简单的表格显示需要设置UITableView的什么属性、实现什么协议?
39、Cocoa Touch提供了哪几种Core Animation过渡类型?
40、UIView与CLayer有什么区别?
41、Quatrz 2D的绘图功能的三个核心概念是什么并简述其作用
42、iPhone OS主要提供了几种播放音频的方法?
43、使用AVAudioPlayer类调用哪个框架、使用步骤?
44、有哪几种手势通知方法、写清楚方法名?
45、ViewController的didReceiveMemoryWarning怎么被调用
46、什么时候用delegate,什么时候用Notification?
47、用预处理指令#define声明一个常数,用以表明1年中有多少秒(忽略闰年问题)
48、写一个”标准"宏MIN ,这个宏输入两个参数并返回较小的一个。
49、关键字const有什么含意?修饰类呢?static的作用,用于类呢?还有extern c的作用
50、关键字volatile有什么含意?并给出三个不同的例子
51、一个参数既可以是const还可以是volatile吗? 一个指针可以是volatile 吗?解释为什么。
52、static 关键字的作用
53、列举几种进程的同步机制,并比较其优缺点。
54、进程之间通信的途径
55、进程死锁的原因
56、死锁的4个必要条件
57、死锁的处理
58、cocoa touch框架
59、自动释放池是什么,如何工作
60、sprintf,strcpy,memcpy使用上有什么要注意的地方
61、你了解svn,cvs等版本控制工具么?
62、什么是push
63、静态链接库
64、OC三大特性
(1)封装_点语法
(2)继承
(3)多态

65、OC中如何实现多态
66、Objective-C的优缺点
67、对于OC,你认为最大的优点和最大的不足是什么?对于不足之处,现在有没有可用的方法绕过这些不足来实现需求。如果可以话,有没有考虑或者实现过重新实现OC的功能,如果有,具体怎么做?
68、oc中可修改和不可以修改类型
69、我们说的oc是动态运行时语言是什么意思?
70、通知和协议的不同之处?
71、什么是推送消息?
72、关于多态性
73、什么是谓词?
74、做过的项目是否涉及网络访问功能,使用什么对象完成网络功能?
75、简单介绍下NSURLConnection类及+sendSynchronousRequest:returningResponse:error:与– initWithRequest:delegate:两个方法的区别?

76、谈谈Object-C的内存管理方式及过程?
77、Object-C有私有方法吗?私有变量呢?
78、说说响应链
79、时间传递 & 响应者链
80、frame和bounds有什么不同?
81、方法和选择器有何不同?
82、OC的垃圾回收机制?
83、什么是延迟加载?
84、是否在一个视图控制器中嵌入两个tableview控制器?
85、一个tableView是否可以关联两个不同的数据源?你会怎么处理?
86、什么时候使用NSMutableArray,什么时候使用NSArray?
87、给出委托方法的实例,并且说出UITableVIew的Data Source方法
88、在应用中可以创建多少autorelease对象,是否有限制?
89、如果我们不创建内存池,是否有内存池提供给我们?
90、什么时候需要在程序中创建内存池?
91、类NSObject的那些方法经常被使用?
92、什么是简便构造方法?
93、如何使用Xcode设计通用应用?
94、 UIView的动画效果有那些?
95、Object-C有多继承吗?没有的话用什么代替?cocoa 中所有的类都是NSObject 的子类
96、内存管理 Autorelease、retain、copy、assign的set方法和含义?
97、C和obj-c 如何混用
98、类别的作用?继承和类别在实现中有何区别?
99、类别和类扩展的区别。
100、oc中的协议和java中的接口概念有何不同?
101、深拷贝与前拷贝区别
(1)什么是深拷贝浅拷贝
(2)字符串什么时候使用copy,strong
(3)字符串所在内存区域
(4)mutablecopy和copy @property(copy) NSMutableArray *arr;这样写有什么问题
(5)如何让自定义类可以使用copy修饰符

102、对于语句NSStringobj = [[NSData alloc] init]; obj在编译时和运行时分别时什么类型的对象?
103、#import 跟#include 又什么区别,@class呢, #import<> 跟 #import”"又什么区别?
104、Objective-C的类可以多重继承么?可以实现多个接口么?Category是什么?重写一个类的方法用继承好还是分类好?为什么?
105、 #import 跟#include 又什么区别,@class呢, #import<> 跟 #import””又什么区别?
106、写一个setter方法用于完成@property (nonatomic,retain)NSString
name,写一个setter方法用于完成@property(nonatomic,copy)NSString *name
107、常见的Objective-C的数据类型有那些, 和C的基本数据类型有什么区别?如:NSInteger和int
108、id 声明的对象有什么特性?
109、Objective-C如何对内存管理的,说说你的看法和解决方法?
110、原子(atomic)跟非原子(non-atomic)属性有什么区别?
111、看下面的程序,第一个NSLog会输出什么?这时str的retainCount是多少?第二个和第三个呢? 为什么?
112、内存管理的几条原则时什么?按照默认法则.那些关键字生成的对象需要手动释放?在和property结合的时候怎样有效的避免内存泄露?
113、如何对iOS设备进行性能测试?
114、设计模式
(1)mvc模式
(2)单例模式
(3)mvvm模式
(4)观察者模式
(5)工厂模式
(6)代理模式
(7)策略模式
(8)适配器模式
(9)模版模式
(10)外观模式
(11)创建模式
(12)MVP模式

115、MVVM模式原理分析
116、说说常用的几种传值方式
117、什么时候用delegate,什么时候用Notification
118、对于单例的理解
119、从设计模式角度分析代理,通知和KVO区别?ios SDK 提供 的framework使用了哪些设计模式,为什么使用?有哪些好处和坏处?
120、KVO,NSNotification,delegate及block区别
121、运行时(runTime)
122、runtime/消息转发机制
(1)runtime
1.1、什么是runtime
1.2、runtime干什么用,使用场景
(2)消息机制
2.1、消息转发的原理
2.2、SEL isa super cmd 是什么
(3)动态绑定

123、使用bugly进行崩溃分析
124、jenkens 持续打包
125、KVO & KVC
(1)底层实现
(2)KVO概述
(3)KVC概述

126、什么是KVO和KVC?
KVO和KVC
(1)如何调用私有变量,如何修改系统的只读属性,KVC的查找顺序
(2)什么是键-值,键路径是什么
(3)kvo的实现机制
(4)KVO计算属性,设置依赖键
(5)KVO集合属性
(6)kvo使用场景

127、SDWebImage(SDWebImage的实现机制)
(1)主要功能
(2)缓存
(3)内存缓存与磁盘缓存

128、框架 SDWebimage的缓存机制
129、网络安全
密码的安全原则

130、多线程
(1)多线程概念
(2)多线程的作用
(3)使用场景

131、NSOperationQueue和GCD的区别是什么
132、GCD与NSThread的区别
133、进程和线程的区别与联系是什么?
134、别异步执行两个耗时操作,等两次耗时操作都执行完毕后,再回到主线程执行操作. 使用队列组(dispatch_group_t)快速,高效的实现上述需求
135、在项目什么时候选择使用GCD,什么时候选择NSOperation?
136、对比iOS中的多线程技术
137、多线程优缺点
138、iOS中的延迟操作
139、串行队列同步执行和异步主队列
140、资源抢夺解决方案
141、dispatch_barrier_async的作用是什么?
142、在多线程Core Data中,NSC,MOC,NSObjectModel哪些需要在线程中创建或者传递?你是用什么策越来实现的?
143、+(void)load与 +(void)initialize区别load 和 initialize方法的区别
144、http的post与区别与联系,实践中如何选择它们?
145、说说关于UDP/TCP的区别?
146、http和scoket通信的区别?socket连接相关库,TCP,UDP的连接方法,HTTP的几种常用方式?
147、HTTP请求常用的几种方式
148、block
(1)使用block时什么情况会发生引用循环,如何解决?
(2)在block内如何修改block外部变量?
(3)Block & MRC-Block
(4)什么是block
(5)block 实现原理
(6)关于block
(7)使用block和使用delegate完成委托模式有什么优点
(8)多线程与block
(9)谈谈对Block 的理解?并写出一个使用Block执行UIVew动画?
(10)写出上面代码的Block的定义(接上题)

149、Weak、strong、copy、assign 使用
(1)什么情况使用 weak 关键字,相比 assign 有什么不同?
(2)怎么用 copy 关键字?
(3)weak & strong
(4)这个写法会出什么问题: @property (copy) NSMutableArray *array
(5) 如何让自己的类用 copy 修饰符?如何重写带 copy 关键字的 setter?
(6) @property 的本质是什么?ivar、getter、setter 是如何生成并添加到这个类中的
(7)ivar、getter、setter 是如何生成并添加到这个类中的?br/>(8)用@property声明的NSString(或NSArray,NSDictionary)经常使用copy关键字,为什么?如果改用strong关键字,可能造成什么问题?
(9)@protocol 和 category 中如何使用 @property
(10)runtime如何通过selector找到对应的IMP地址?
(11)retain和copy区别
(12)copy和strong的使用?
(13)NSString和NSMutableString,前者线程安全,后者线程不安全。
(14)readwrite,readonly,assign,retain,copy,weak ,strong,nonatomic 属性的作用

150、OC与JS的交互(iOS与H5混编)
TableView性能优化
UITableView核心思想
UITableView的优化主要从三个方面入手:

151、TableView为什么会卡?
152、UITableView
(1)UITableView最核心的思想
(2)定义高度
(3)自定义高度原理
(4)老生常谈之UITableView的性能优化
(5)cell高度的计算
(5.1)定高的cell和动态高度的cell
(6)TableView渲染
(7)减少视图的数目
(8)减少多余的绘制操作
(9)不要给cell动态添加subView
(10)异步化UI,不要阻塞主线程
(11)滑动时按需加载对应的内容
(12)离屏渲染的问题
(13)离屏渲染优化方案

153、环信SDK使用
154、蓝牙
155、在iPhone应用中如何保存数据?
156、什么是coredata?
157、 什么是NSManagedObject模型?
158、什么是NSManagedobjectContext?
159、 iOS平台怎么做数据的持久化?coredata 和sqlite有无必然联系?coredata是一个关系型数据库吗?
160、CoreData & SQLite3
161、数据存储
(1)数据存储技术
(1.1)数据存储的几种方式
(1.2)各自特点(面试考点)
(1.3)偏好设置(面试考点)
(1.4)归档(面试考点)
(2)数据库技术(SQLite&CoreData)

162、Objective-C堆和栈的区别?
163、内存泄露 & 内存溢出
164、堆 & 栈
(1)堆栈空间分配区别
(2)堆栈缓存方式区别
(3)堆栈数据结构区别

165、内存管理
(1)内存区域
(1.1)堆和栈的区别
(1.2)iOS内存区域
(2)字符串的内存管理
(3)你是如何优化内存管理
(4)循环引用
(5)autorelease的使用
(5.1)工厂方法为什么不释放对象
(5.2)ARC下autorelease的使用场景
(5.3)自动释放池如何工作
(5.4)避免内存峰值
(5.5)ARC和MRC的混用
(5.6)NSTimer的内存管理
(5.7)ARC的实现原理

166、Runloop
167、fmmpeg框架
168、fmdb框架
169、320框架
170、UIKit和CoreAnimation和CoreGraphics的关系是什么?在开发中是否使用过CoreAnimation和CoreGraphics?
171、trasform
172、点讲动画和layer ,view的区别
173、图层与视图
174、平行的层级关系
175、图层的能力
176、使用图层
177、核心绘图
(1)View和layer的区别
(2)new和alloc init的区别

178、动画
179、UICollectionView
(1)何实现瀑布流,流水布局
(2)和UITableView的使用区别

180、UIImage
181、webview
182、描述九宫格算法
183、实现图片轮播图
184、iOS网络框架
185、网络
(1)网络基础
(2)网络传输
(3)AFN

186、AFNetworking & ASIHttpRequest & MKNetWorking
(1)底层实现
(2)对服务器返回的数据处理
(3)监听请求过程
(4)在文件下载和文件上传的使用难易度
(5)网络监控
(6)ASI提供的其他实用功能
(7)MKNetworkKit

187、性能优化
188、算法

半年努力,我终于把这100家企业iOS面试题整理完了(附答案)!

原文地址:https://blog.51cto.com/14121524/2409551

时间: 2024-08-05 02:56:06

半年努力,我终于把这100家企业iOS面试题整理完了(附答案)!的相关文章

100道Java基础面试题收集整理(附答案)

1.什么是B/S架构?什么是C/S架构 B/S(Browser/Server),浏览器/服务器程序 C/S(Client/Server),客户端/服务端,桌面应用程序 2.你所知道网络协议有那些? HTTP:超文本传输协议 FTP:文件传输协议 SMPT:简单邮件协议 TELNET:远程终端协议 POP3:邮件读取协议 3.Java都有那些开发平台? JAVA SE:主要用在客户端开发 JAVA EE:主要用在web应用程序开发 JAVA ME:主要用在嵌入式应用程序开发 4.什么是JVM?ja

未来科技城 x 奇点云打造「企业数据大脑」,助力1.3万家企业服务

“当前,政府数字化和数字政府建设已成为一种趋势.一种必然,并且有了一条水到渠成式的实现路径.” 上升为国家战略的数字中国建设加速了”智慧政务“的生动实践,杭州未来科技城的「企业数据大脑」就是一个典型. 从17年8月开始,入驻的企业迅速增多,这是科技城政府特别直观的感受.伴随而来的,是业务处理日趋复杂.政务信息资源的急剧增长,而已有数据管理模式已不适应大数据时代政务的特点.为贯彻落实“最多跑一次”改革,推进“三化融合”,推行“互联网+”政务服务模式,更精准地服务企业,杭州未来科技城政府联合奇点云,

全球最牛的100家AI创企:有多少独角兽?

全球最牛的100家AI创企:有多少独角兽? 自2012年以来,在共计263笔交易中筹集了38亿美元.那么,这100家顶尖AI公司主要集中在哪些方向?其中有多少家独角兽公司?中国企业表现如何呢? 近期,CB Insights发布了一份全球"AI 100"名单.该名单从全球1650家AI企业中评选出了100家最具创新实力.最有前途的公司.这些公司来自11个国家和地区,处于不同的发展阶段,自2012年以来,在共计263笔交易中筹集了38亿美元.那么,这100家顶尖AI公司主要集中在哪些方向?

【喜报】电子会员卡管理软件试推广商户突破100家,商盟会员突破35万,会员真正共享走起!媲美一卡易会员管理软件

 哈林·电子会员卡管理软件喜报 2014年12月1日软件正式投入试推广阶段以来,我们本着软件的实用.开放.便捷的原则历经22天的奋战,终于得到了喜人的数据,100家商户,商盟会员35万的惊人数据. 在试推广的阶段,我们的业务员,技术员跟商户一对一的实情沟通,了解到了商家一些急需要也必须要开发的软件功能,比如"艾尚美发中心"为我们提出了一个新的需求:在大多数情况下由于客户不知道美发店里当下有多少人在美发,客户想要指定的美发师是否正在干活中,以及后面还有多少人在等待美发,需要等待多长时

此文记录了我从研二下学期到研三上学期的找工历程,包括百度、腾讯、网易、移动、电信、华为、中兴、IBM八家企业的面试总结和心得--转

感谢电子通讯工程的研究生学长为大家整理了这么全面的求职总结,希望进入通信公司和互联网公司做非技术类岗位的学弟学妹们千万不要错过哦~ ---------------------------原文分割线-------------------------- 此文记录了我从研二下学期到研三上学期的找工历程,包括百度.腾讯.网易.移动.电信.华为.中兴.IBM八家企业的面试总结和心得,希望能够帮助到正在找工的朋友和师弟师妹们,并纪念找工这段怀揣着希望和梦想,伴随着紧张和压力,同时令我受益匪浅的日子. (本文

中国500家企业【薪资待遇】一览

快消类: 联合利华: MKT 9500+3000元安家费 普通职位 8KX12 联合利华销售代表:底薪加提成,总体一般,一般能拿到5K以上 宝洁:本8600.硕9700.博10500发14个月 --11年数据 欧莱雅 MKT:6.6K X 13 --11年数据 玛氏中国 地点北京,年收入12000*13 税前 ---11年 百威英博 地点主要在上海,很多时间是全国转 年收入8500*13 --11年 箭牌:普通职位4400×13(09年) 管理培训生 9600*15 --11年 卡夫 上海 45

解读:全国100强企业为何选择TurboMail邮件系统

根据小编的最新统计,在2014年中国100强企业名单中,已有数十家全国百强企业采用了性能高而管理易TurboMail邮件服务器产品,百强大型集团具有丰富的企业信息化管理经验,管理过多个邮件系统品牌,但为何他们一致对TurboMail邮件系统给出了高度的满意度评价,表示将与TurboMail邮件系统进行更加广泛和长期的合作呢? 作为国产邮件系统软件的黑马产品,TurboMail在数年内一马当先,冲破传统老邮件系统品牌的重重防护,成为企事业单位客户心目中的优质邮件系统品牌,归根到底是由于拓波软件的强

2014年中国95家企业入围世界500强,超日本

2014年中国95家企业入围世界500强.中国入围世界500强企业达95家,居全球第二,中国500强企业营业总收入达50.0万亿元,实现净利润总额2.2万亿元. 中国大陆地区进入世界500强的85家企业中,民营企业仅仅有7家,国有及国有控股企业占91.8%. 关于中国入围世界500强的总部企业变化情况,报告指出,我国越来越多的总部企业"走出去"发展,国际竞争力不断提升,2004年我国仅有16家总部企业入围世界500强,到2013年我国入围世界500强的企业数达到95家,仅次于美国,位居

认知物联网时代,17000家企业用Watson刷新购物体验

(上图为IBM在拉斯维加斯举办的Amplify 2017大会) 根据IBM与<经济学人>杂志联合发布的<2017物联网商业指数>报告,零售企业和消费品企业认为物联网是数字化转型的关键战略.而物理世界与数字世界的融合,线上与线下零售渠道交织在一起,将深刻影响零售业的客户交互体验以及商务运营. 2016 CES上IBM和软银推出了Watson版智能机器人Pepper,2017年Pepper已经出现了日本东京银座的商店里,用语音向消费者提供店内的商品信息.通过物理设备进入零售商店等线下世