你在项目中是怎么优化内存的?
- 减少类的创建,多复用
- 尽量用轻量级的对象
- 图片不能过大,尽可能少用图片
- 少用定时器
- 控制线程的最大并发数量
- 减少、压缩网络数据
优化你是从哪几方面着手?
-
CPU
和GPU
-
I/O
操作 - 网络
- 定位
列表卡顿的原因可能有哪些?你平时是怎么优化的?
- 使用
MVVM
模式进行开发,ViewModel
在子线程获取Model
的同时也将视图的UI
属性都提前计算好,再回到主线程刷新,尽可能减少在滚动的时候的计算操作 - 图片圆角不使用
layer.masksToBounds = YES
、layer.cornerRadius
大于0的方式设置,通过CoreGraphics
绘制裁剪圆角,或者叫美工提供圆角图片 - 要使用阴影就必须也设置
layer.shadowPath
遇到tableView卡顿嘛?会造成卡顿的原因大致有哪些?
- 高度并没有提前算好、离屏渲染、视图结构过于复杂、视图的UI属性修改频繁、透明的视图过多、图片过大
讲讲 MVC、MVVM、MVP,以及你在项目里具体是怎么写的?
-
MVC
:将View
内部的细节封装起来了,View
依赖Model
,展示的内容由Model决定,Controller
负责控制View
展示哪个Model
的内容 -
MVVM
:View
和Mode
l互不依赖,都经由ViewModel进行联动,ViewModel负责Model的加载和View需要的其他数据的处理,并将其 -
MVP
:跟MVC
类似,只是把Controller
的工作交付给Presenter
,并且View不依赖Model
,由Presenter
控制Model
的内容数据展示在哪个View
上
- 你自己用过哪些设计模式?
-
MVC
、MVVM
-
- 一般开始做一个项目,你的架构是如何思考的?
- 分层设计,分别以界面层、业务层、网络层、数据层共四个大的层面划分,再按功能的不同进行模块化开发
网友评论