百易图
1.内存管理,ARC、MRC,有没有遇到内存问题,怎么解决的,内存泄漏
2.了解的iOS中的设计模式,tableView用了什么设计模式?享元模式
3.MVVM怎么实现双向绑定
4.多线程,多个请求并发,请求回来后处理
5.加载速度优化,怎么优化的多次刷新
6.直播聊天室大量消息优化,送礼物怎么保证触达
7.500人群里抢红包的场景处理
8.swift类和结构体的区别
9.减少CPU占用的优化
参考答案
1.内存管理,ARC、MRC,有没有遇到内存问题,怎么解决的,内存泄漏
Tagged Pointer NSNumber、NSDate、NSString等小对象的存储,数据直接存储在指针中
引用计数来管理OC对象的内存
引用计数存储在 nonpointer 优化过的isa指针中,也可能存储在SideTable类中,
SideTable {
spinlock_t slock;
RefcountMap refcnts;
weak_table_t weak_table;
};
refcnts 是一个存放着对象引用计数的散列表
2.了解的iOS中的设计模式,tableView用了什么设计模式?
在iOS开发中,UITableView
主要使用了一系列设计模式来实现其功能,包括但不限于以下几种设计模式:
1. 委托模式(Delegate)
描述:通过将一个对象的某些职责委托给另一个对象来实现对象间的松耦合。
在 UITableView
中的应用:
UITableView
使用委托模式来处理用户交互和配置特定行为。UITableViewDelegate
协议定义了一些方法,这些方法由委托对象(通常是视图控制器)实现,以响应用户操作(如行选择、行高设置等)。
2. 数据源模式(Data Source)
描述:通过将数据访问和数据管理的职责委托给另一个对象来实现数据的解耦。
在 UITableView
中的应用:
UITableView
使用数据源模式来提供数据。UITableViewDataSource
协议定义了一些方法,这些方法由数据源对象实现,以提供表格视图所需的数据(如单元格内容、行数等)。
3. 复用模式(Reuse)
描述:通过对象的复用来提升性能和减少内存消耗。
在 UITableView
中的应用:
UITableView
使用单元格复用机制来提高性能。通过dequeueReusableCellWithIdentifier:
方法,表格视图可以复用已经创建的单元格,而不是每次都创建新的单元格。
4. MVC 模式(Model-View-Controller)
描述:一种用于组织代码的架构模式,将应用的逻辑层、数据层和视图层分离。
在 UITableView
中的应用:
UITableView
本身是视图层的一部分,数据源和委托对象(通常是视图控制器)负责处理数据层和逻辑层。这种分离使得代码更清晰、可维护性更高。
3.MVVM怎么实现双向绑定
4.多线程,多个请求并发,请求回来后处理
5.加载速度优化,怎么优化的多次刷新
6.直播聊天室大量消息优化,送礼物怎么保证触达
7.500人群里抢红包的场景处理
8.swift类和结构体的区别
9.减少CPU占用的优化