iOS 基础面试题汇总

系统学习推荐一些经典书籍:
《Effective Objective-C 2.0》
《Objective-C 高级编程》
《剑指Offer》
《程序员的自我修养》


本文收录了一些 iOS 常见的面试题目,重点是要理解其背后原理实现,知道其具体应用场景。

1.Runloop 的实现原理和数据结构,及其应用?

包括 Runloop 与线程的关系,Runloop 的 Mode 等

参考:

深入理解 Runloop

iOS Runloop 详解

iOS 刨根问底--深入理解 Runloop


2.谈谈对 runtime 的理解,及其应用, 为什么称 OC 为动态语言?

包括 isa 指针, SEL,  IMP,MetaClass,objec_msgSend, Method Swizzling,Objective-C Associated Objects 等

参考:

Objective-C Runtime

iOS运行时(Runtime)详解+Demo

iOS 消息发送与转发详解

[iOS] runtime 的使用场景--实战篇


runtime 应用:

Method Swizzling OC 实现:

iOS runtime实战应用:Method Swizzling

Method Swizzling Swift 实现:

如何优雅地在Swift4中实现Method-Swizzling

遍历对象的属性:

iOS runtime实战应用:成员变量和属性

class_copyPropertyList与class_copyIvarList区别,获取属性,使用runtime方法的注意事项

ios开发 @property 和 Ivar 的区别


3.内存管理 ARC, MRC

包括内存泄露,野指针,循环引用,内存泄露调试工具,堆,栈等

参考:

iOS 内存管理详解


4.iOS 消息传递机制

参考:

iOS 消息传递机制


5.多线程,哪些场景需要开辟线程?

包括 NSTread, NSOperationQueue,CGD,同步锁,主线程刷新 UI,

同步,异步,并行,串行

参考:

iOS 中的多线程技术

iOS 并行开发系列--并行开发其实很容易


6.Autoreleasepool 原理和使用场景

参考:

黑幕背后的 Autoreleasepool


7.App 的启动过程

参考:

深入理解 iOS App 的启动过程


8.UIViewController 生命周期

参考:

探究 UIViewController 生命周期


9.UIView 的绘制流程

包括 init, initwithcode, awake, layoutsubviews, drawrect 等方法的调用顺序,使用xib, storyboard 的调用顺序

setNeedsDisplay, layoutIfNeeded,hittest, pointinside

参考:

谈谈 layoutSubviews 和 drawrect

UIView 的 hitTest 和pointInside 方法


10.UIView 的 layer

包括 anchorPoint,position,动画

参考:

iOS 开发系列--让你的应用动起来


11.Block 本质

包括 __weak 和 __block,循环引用问题

参考:

iOS Block 用法和实现原理


12.property 和 ivar 的区别

包括属性关键字 strong,weak,assign, retain, copy, atomic, nonatomic,readonly, readwrite

参考:

iOS 开发 @property 和 ivar 的区别

OC MRC 成员变量, property, synthesize, dynamic

iOS 面试之@property


13.KVO 和 KVC,Delegate,单例, Notification等设计模式

14.static, const, extern 关键字的作用

参考:

OC 中的 static,const,extern 的理解


15.Category 和 Extension, Protocol

16.iOS中常用的数据存储方式有哪些?

包括 NSUserDefault,KeyChainplist,Archive(归档),SQLite,CoreData

17.iOS的沙盒目录结构是怎样的?



面试题参考:

  1. 2018 iOS 面试题及答案





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值