相信很多新手小白对iOS开发常见面试题的了解处于懵懂状态,通过这篇文章的总结,希望你能有所收获。如下资料是关于iOS开发常见面试题的内容。

一、Runtime一个objc对象的isa的指针指向什么?有什么作用?一个 NSObject 对象占用多少内存空间?说一下对 class_rw_t 的理解?说一下对 class_ro_t 的理解?说一下对 isa 指针的理解说一下 Runtime 的方法缓存?存储的形式、数据结构以及查找的过程?使用runtime Associate方法关联的对象,需要在主对象dealloc的时候释放么?实例对象的数据结构?什么是method swizzling(俗称黑魔法)什么时候会报unrecognized selector的异常?如何给 Category 添加属性?关联对象以什么形式进行存储?能否向编译后得到的类中增加实例变量?能否向运行时创建的类中添加实例变量?为什么?类对象的数据结构?runtime如何通过selector找到对应的IMP地址?runtime如何实现weak变量的自动置nil?知道SideTable吗?objc中向一个nil对象发送消息将会发生什么?objc在向一个对象发送消息时,发生了什么?isKindOfClass 与 isMemberOfClassCategory 在编译过后,是在什么时机与原有的类合并到一起的?Category 有哪些用途?Category 的实现原理?_objc_msgForward函数是做什么的[self class] 与 [super class]代码题 一代码题 二二、Runloop为什么 NSTimer 有时候不好使?AFNetworking 中如何运用 Runloop?autoreleasePool 在何时被释放?PerformSelector 的实现原理?PerformSelector:afterDelay:这个方法在子线程中是否起作用?为什么?怎么解决?RunLoop的ModeRunLoop的实现机制RunLoop和线程RunLoop的数据结构RunLoop概念RunLoop与NSTimer讲一下 Observer ?解释一下 NSTimer解释一下 事件响应 的过程?解释一下 手势识别 的过程?什么是异步绘制?利用 runloop 解释一下页面的渲染的过程?三、Objective_C语言特性KVC(Key-value coding)KVO (Key-value observing)分类、扩展、代理(Delegate)属性关键字通知(NSNotification)四、Animation请说一下对 CALayer 的认识。CALayerContents 有几下几个主要的属性:五、BlockBlock的几种形式Block变量截获什么是Block?六、UI相关七、多线程进程、线程多进程、多线程任务、队列iOS中的多线程GCD---队列死锁GCD任务执行顺序dispatch_barrier_asyncdispatch_group_asyncDispatch Semaphore延时函数(dispatch_after)使用dispatch_once实现单例NSOperationQueue的优点NSOperation和NSOperationQueueNSThread+runloop实现常驻线程自旋锁与互斥锁八、内存管理在 Obj-C 中,如何检测内存泄漏?你知道哪些方式?在 MRC 下如何重写属性的 Setter 和 Getter_循环引用说一下什么是 悬垂指针?什么是 野指针?说一下对 retain,copy,assign,weak,_Unsafe_Unretain 关键字的理解是否了解 深拷贝 和 浅拷贝 的概念,集合类深拷贝如何实现使用自动引用计数应遵循的原则能不能简述一下 Dealloc 的实现机制内存中的5大区分别是什么?内存管理默认的关键字是什么?内存管理方案内存布局讲一下 iOS 内存管理的理解讲一下 @dynamic 关键字?简要说一下 @autoreleasePool 的数据结构?访问 __weak 修饰的变量,是否已经被注册在了 @autoreleasePool 中?为什么?retainrelease 的实现机制?MRC(手动引用计数)和ARC(自动引用计数)BAD_ACCESS 在什么情况下出现?autoReleasePool 什么时候释放?ARC自动内存管理的原则ARC 在运行时做了哪些工作?ARC 在编译时做了哪些工作ARCretainCount 怎么存储的?__weak 属性修饰的变量,如何实现在变量没有强引用后自动置为 nil__weak_Unsafe_Unretain 的区别?九、设计模式如何设计一个时长统计框架?如何设计一个图片缓存框架?编程中的六大设计原则?十、数据安全及加密RSA非对称加密简述 SSL 加密的过程用了哪些加密方法,为何这么作?十一、数据结构与算法iOS开发 数据结构iOS 算法面试题(一)iOS 算法面试题(二)十二、网络相关HTTP协议HTTPS、对称加密、非对称加密一个基于UDP的简单的聊天DemoUDP的特点、UDP的报文结构及差错检测TCP、三次握手、四次挥手、代码实现可靠数据传输、流量控制(滑动窗口)、拥塞控制DNSCookie和SessionIP协议、IP数据报分片、IPv4编址、网络地址转换(NAT)IPv6、从IPv4到IPv6的迁移十三、性能优化iOS 性能优化面试题光栅化日常如何检查内存泄露?如何高性能的画一个圆角?如何提升 tableview 的流畅度?如何优化 APP 的电量?如何有效降低 APP 包的大小?什么是 离屏渲染?什么情况下会触发?该如何应对?如何检测离屏渲染?怎么检测图层混合?

关于iOS开发常见面试题就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果喜欢这篇文章,不如把它分享出去让更多的人看到。