iOS面试大全
文章平均质量分 90
iOS开发面试题
阿雷_
从业多年的iOS开发者,已有多个独立开发作品上架APP Store
展开
-
面试题零碎问题
1.导致Crash的原因有哪些?1、找不到方法的实现unrecognized selector sent to instance 2、KVC造成的crash 3、EXC_BAD_ACCESS 4、KVO引起的崩溃 5、集合类相关崩溃 6、多线程中的崩溃 7、Socket长连接,进入后台没有关闭 8、Watch Dog超时造成的crash 9、后台返回NSNull导致的崩溃,多见于Java做后台服务器开发语言2.不使用第三方,如何知道已经上线的App崩溃问题, 具体到哪一个类的哪一个方法的?大.原创 2021-09-20 13:55:33 · 252 阅读 · 0 评论 -
算法相关面试问题
1.0 字符串反转问题1:给定字符串"hello,world",实现将其反转。 输出结果:dlrow,olleh 有一个字符数组里面存储hello,world,通过设置两个指针,一个指针指向字符数组开头begin,一个指针指向字符数组结尾end,在遍历过程当中逐步交换开头和尾部指针所指内容,交换之后移动指针到对应下一个位置,在进行下一次交换,一直到每一个字符都被交换完成,退出条件begin>=end字符串反转代码实例:void char_reve...原创 2021-09-17 13:37:11 · 516 阅读 · 0 评论 -
第三方库相关面试问题
1.0 AFNetworking1.1AFNetworking的整体框架 由会话NSURLSession,网络监听模块用来监听网络的变化进行一些逻辑处理,然后网络安全模块,AFNetworking为我们请求进行了请求序列化的封装,响应序列化的封装,在此之上又有UIKit集成模块,比如UIKit原生控件分类的添加,这些就构成了AFNetworking的整体框架。1.2AFNetworking主要类关系 最核心的类就是AFURLSessionManager...原创 2021-09-16 21:53:46 · 644 阅读 · 0 评论 -
架构框架相关面试问题
1.0 架构和框架问题1:架构和框架之所以运用到日常开发中,是为了解决什么问题? 模块化分层 解耦 降低代码重合度问题2:怎样设计一个图片缓存框架? 首先图片缓存框架需要有一个管理者Manager,用于协调框架内部的各个模块,一个负责内存管理的模块,一个负责磁盘处理的模块,本地没有图片我们需要支持网络下载图片模块,就构成了图片缓存基本框架,如果图片是被压缩的或者是在内存中保存的图片需要解码之后的图片格...原创 2021-09-16 15:27:13 · 424 阅读 · 0 评论 -
设计模式相关面试题
1.0 六大设计原则问题1:你了解哪些设计原则?单一职责原则:一个类只负责一件事 开闭原则:对修改关闭,对扩展开放 接口隔离原则:使用多个专门的协议,而不是一个庞大臃肿的协议,协议中的方法应该尽量少 依赖倒置原则:抽象不应该依赖于具体实现,具体实现可以依赖于抽象...原创 2021-09-15 18:20:35 · 149 阅读 · 0 评论 -
网络相关面试问题
1.0 HTTP 超文本传输协议 请求/响应报文 链接建立流程 HTTP的特点问题1:什么是http? 请求报文和响应报文组成结构问题2:HTTP的请求方式有哪些?GET POST HEAD PUT DELETE OPTIONS问题3:GET和POST方式有什么区别? GET请求参数以?分割拼接到URL后面,PO...原创 2021-09-15 14:53:36 · 248 阅读 · 0 评论 -
RunLoop相关面试题
1.0 什么是RunLoop ? RunLoop是通过内部维护的事件循环来对事件/消息进行管理的一个对象。问题1:事件循环(Event Loop)是什么? 没有消息需要处理时,休眠以避免资源占用。 用户态——内核态 当前线程休眠 有消息需要处理时,立刻被唤醒。 内核态——用户态 当前线程唤醒main函数为什么能一直保持运行的状态而不退出? 在main函数当中调用UIAppl...原创 2021-09-14 18:33:47 · 734 阅读 · 0 评论 -
多线程相关面试问题
1.0 GCD 同步/异步 和 串行/并发 dispatch_barrier_async 栅栏函数,解决多读单写的问题 dispatch_group问题1:同步串行问题,以下片段会造成什么问题?如何解决?- (void)viewDidLoad { dispatch_sync(dispatch_get_main_queue(), ^{ [self doSomeThing]; });}会造成死...原创 2021-09-13 16:40:16 · 287 阅读 · 0 评论 -
Block面试相关问题
什么是Block Block是将函数及其执行上下文封装起来的对象。__block修饰符 一般情况下,对被截获变量进行赋值操作需要添加__block修饰符对变量进行赋值时Block 的几种形式分为全局Block( )、栈Block(_NSConcreteStackBlock)、堆Block( )三种形式其中栈 Block 存储在栈(stack)区,堆 Block 存储在堆(heap)区,全局 Bl...原创 2021-09-13 13:59:36 · 295 阅读 · 0 评论 -
内存管理面试问题
1.0 内存管理相关1.1:retain实现?retain的时候系统是怎样查找对应的引用计数的? 经过两次哈希查找查找到它的引用计数值进行相应的+1操作1.2: release实现?1.3: delloc的实现? 总结:首先调用_objc_rootDealloc()私有函数,这个函数会调用rootDealloc()函数,然后在这个函数内部当前对象是否可以直接释放,是否可以直接释放的判断条件如下: 1:nonpointer_isa...原创 2021-09-12 14:52:20 · 392 阅读 · 0 评论 -
RunTime相关面试问题
1.0 数据结构 2.0 对象 类对象 元类对象类对象存储实例方法列表等信息 元类对象存储类方法列表等信息2.1:类对象和元类对象之间有什么区别和联系? 实例对象通过isa指针找到它的类对象,类对象当中存储方法列表等信息,以及类对象可以通过isa指针找到它的元类对象,可以访问一些关于类方法的相关信息。 类对象和元类对象都是objc_class数据结构,由于objc_class继承了objc_o...原创 2021-09-11 15:05:09 · 478 阅读 · 0 评论 -
Objective-C语言特性相关面试汇总
1.0分类(Category)1.1:你用分类做了哪些事? 声明私有方法 分解体积庞大的类文件 把Framework的私有方法公开1.2:分类的特点 运行时决议 可以为系统类添加分类1.3:分类中都可以添加哪些内容? 实例方法 类方法 协议 属性(只生成对应get和set方法并未添加实例变量)1.4:分类加载调用栈...原创 2021-09-10 15:25:58 · 285 阅读 · 0 评论 -
UI视图相关面试问题汇总
1:事件传递与视图响应链- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event哪个视图响应了这个事件返回哪个视图- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event某一个点击的位置是否在当前视图范围内如果在的话就返回YES1.1:事件传递流程如下1.2: hitTest:withEvent:系统实现1.3: 视图事件响应- ..原创 2021-09-09 15:47:19 · 367 阅读 · 0 评论