0%
程序绘制流程
试图绘制为什么不立即执行
事件响应流程
UI卡顿原因
滑动优化方案
什么是离屏渲染,触发的条件是什么
UIView和CALayer关系
CALayer的mask作用
如何高性能给UIImageView加圆角
如何使用核心动画
如何增加view点击范围
hitTest:withEvent内部实现
程序的启动速度优化
drawRect和layouSubviews 的区别
setNeedsLayout与layoutIfNeeded的区别
UIResponder的理解和事件响应分析
loadView的作用
UITableView卡顿原因
UITableView优化
iOS 保持界面流畅的技巧
使用 drawRect有什么影响
tableViewCell的自适应如何实现,如何保证性能
转场动画相关操作
绘图相关知识(coreGraphics框架的使用)
view的生命周期
系统UIView更新机制的思想
drawRect常用作用
layoutSubView和drawRect的调用时机;
轮播图的实现
-(CGSize)intrinsicContentSize:是干什么用的?
渲染UI为什么要在主线程?
如果有一个controller请求了网络数据,但数据还没返回之前就pop出去了,问,数据会怎么样?
Core Graphics的更底层的是什么;
OC相关
分类可以添加哪些内容,为什么不能添加属性
类扩展和分类的区别
分类是如何实现的
分类重写了原类中同名方法会怎么样,为什么
如何给分类添加属性(关联对象)
什么是代理,和通知/BLOCK区别
什么是通知
KVO实现原理
KVC的实现原理
属性关键字
include与#import的区别、#import 与@class 的区别
解释 const, static, inline 关键字
OC 里怎么实现多继承
load方法实现原理与initialize区别
懒加载的使用
写一个单例
nil NIL NSNULL区别,id 和 instanceType 区别,self和super的区别,struct和class的区别
如何实现一个线程安全的 NSMutableArray?
JS 和 OC 互相调用的几种方式
数据持久性有哪几种
blcok,NSNotification,delegate,Observer比较
const extern static 用法区别
写一个宏定义函数,实现返回三个数中最大的
static和extern的访问范围,用extern的情况下什么时候程序会报错
inline知道吗?说说它的作用。inline在什么时候展开、编译还是运行?
OC里的基本数据类型如数组字典等的数据结构是怎样的;
sychronized实现原理
问NSTimer的底层实现原理
block中为什么要用Strong类型的引用来保持self;
问#ifdef __cplusplus extern “C “
说下ASCII和unicode的区别utf-8的优势
iOS launchwith options 返回no有什么作用;
Runtime
NSObject的数据结构
类对象和实例对象的isa指针的指向
为什么id类型可以指向OC中任意对象
为什么不能用isa判断一个类的继承关系
cache_t的数据结构、实现原理及扩容
cache_t 扩容
class_rw_t的数据结构,实现原理
哈希碰撞的解决方法
方法查找的过程
消息转发的流程
objc_msgSend
系统如何解决新增实例冲突
常用的runtime方法有哪些
runtime的具体应用有哪些,你在什么地方用到了
runtime 怎么添加属性,方法等
runtime 如何实现 weak 属性
runtime 如何通过selector 找到对应的 IMP 地址?(分别考虑类方法和实例方法)
runtime如何实现weak变量的自动置nil
map_images 函数Runtime 初始化操作
共用体方法查找
msgSend如何查找
msgSend参数都有哪些;
class方法相关
内存管理
内存中的5大区都是什么?
C++内存如何分布、堆和栈的区别
ARC实现机制,遵循哪些原则
NSObject内存分配、ISA指针的内存大小
Tagged Pointer、NONPOINTER_ISA实现机制和作用
异步多线程访问导致的内存问题分析及解决办法。(代码题)
SideTables数据结构及实现原理,为什么用多个SideTables
Autoreleasepool的数据结构及实现原理,什么时候释放
AutoreleasePool 为何可以嵌套使用
子线程默认不会开启 Runloop,那出现 Autorelease 对象如何处理,在什么情况下子线程使用AutoreleasePool
dealloc调用流程
常见的循环引用,如何破除循环引用
__weak 修饰的变量在地址被释放后,为何被置为 nil?
深拷贝和浅拷贝区别
atomic是安全的吗
assign vs weak,_block vs _weak 区别
怎么检查内存泄露
图片加载占用内存对比
block一般用那个关键字修饰,为什么
写一个MRC的set方法
如何解决定时器循环引用
指针和引用的区别
内存泄漏的原因
什么是虚拟内存、共享内存、物理内存
举例一些I/O操作的例子
如何开辟一块内存;
什么时候深复制,什么时候浅复制;
怎么控制内存和优化内存;如果是你考虑怎么优化内存,从什么地方着手
问堆和栈的区别。
Block的创建,何时被释放。
@dynamic的应用场景?
问题:@property (copy) NSMutableArray *array;
Block
Block为什么用copy
Block如何截获不同变量,代码分析
Block本质数据结构
栈上的Block经过copy操作后发生哪些变化
block循环引用
__block原理
__strong原理
RunLoop
RunLoop概念及数据结构、事件循环机制
CFRunLoopMode、CFRunLoopTimer、CFRunLoopObserver作用
RunLoop和NStimer
RunLoop和多线程
如何实现一个常驻线程
利用 runloop 解释一下页面的渲染的过程
你在开发过程中怎么使用RunLoop?什么应用场景?
多线程
进程与线程、并行 和 并发 区别
GCD、NSOperation、NSThread区别优缺点
如何让多个网络请求完成后执行下一步
多个网络请求顺序执行后执行下一步
异步操作两组数据时, 执行完第一组之后, 才能执行第二组
你知道哪些锁、使用场景
自旋和互斥对比
CommonMode的特性
runloop与autoreleasepool的关系
GCD 在Runloop中的使用
GCD Global队列创建线程进行耗时操作的风险
CADispalyTimer和Timer哪个更精确
怎样保证子线程数据回来更新UI的时候不打断用户的滑动操作
分析线程同步串行、同步并行、异步串行、异步并行问题
GCD执行原理、问题分析
dispatch_once如何实现一次性代码
NSOperation数据结构
重写NSOperation需要注意的点
进程中的哪些空间是线程所共有的?
使用GCD需要注意什么;
runloop跟runtime有没有关联
CPU和GPU怎么相互合作的
网络
HTTP请求方式有哪些
HTTP特点
HTTP三次握手,为什么需要三次
HTTP四次挥手,为什么需要四次
为什么“握手”是三次,“挥手”却要四次?
为什么客户端在TIME-WAIT阶段要等2MSL
HTTPS TLS/SSL加密过程
HTTPS过程
为什么一定要用三个随机数,来生成”会话密钥
中间人攻击(charles抓包原理)
UDP协议及特点、
TCP特点
TCP特点及与UDP区别
DNS解析流程
DNS劫持
HTTP劫持
Cookie机制及作用
Session机制及作用
Cookie与Session的区别
如何保证cookie的安全
HTTP请求头都有哪些内容
哪些加密算法
TCP和UDP各自使用场景
http为什么底层是tcp不是udp ?
socket异常断开时,设计一个合理的重连机制。
有了mac地址为什么要有ip地址
断点续传怎么实现;
大型文件怎么下载并保存到本地;
xml和json的区别
加密解密的技术讲解。
reachability如何检测到网络状态变化?
IP 地址用 int 保存和读取转化
设计模式
设计原则
iOS有哪些常见的设计模式?
单例优缺点
内存设计、磁盘设计、网络设计原则
MVP、MVVM模式思想
ReactNative的数据流思想
AsyncDisplayKit
AFNetworking 底层原理分析
SDWebImage加载图片过程,图片缓存设计
YYKit
组建化优缺点
复杂页面架构
为什么要做组件化
你认为组件化的一些收益
redux 单向数据流是怎么产生的 描述下
Charts框架底层实现;
画出项目的结构图。
yyModel的逻辑
解耦的方式
项目中用的技术以及实现;
就是项目中遇到的问题以及解决方式;
缓存机制是怎么清除数据的?
如何进行安全测试;
涂鸦怎么实现;
实现一个项目的设计方案,比如数据库的设计,字段的设计,接口的设计;
说下生产者-消费者模型,其中的同步机制是怎么样的
开发日常
APP启动时间应从哪些方面优化?
如何降低APP包的大小
如何检测离屏渲染与优化
怎么检测图层混合
UILabel图层混合
日常如何检查内存泄露?
LLDB常用的调试命令?
iOS 常见的崩溃类型有哪些?
iOS App 稳定性指标及监测
cocoapods 常见问题
iOS的签名机制是怎么样的
instruments它为什么能检测内存泄漏
推送的原理
项目上线被拒原因
项目中遇到的问题,项目的框架搭建,模块分布,设计类图,开发,自测,上线
iPhone自带的AssistiveTouch你如何实现
有了解过代码如何编译的嘛
编译好的目标文件有data 和text段他们两者有啥区别
appstore上架流程
一个APP如何检测手机中另一个APP的存在?解释原理?例如QQ;
针对线上版本的崩溃处理;
Xcode构建过程;
js和Oc交互以及区别;
pod install和pod update有什么区别?