问题:
1.App需要加载超大量的数据,给服务器发送请求,但是服务器卡主了如何解决
答案:
1>设置请求超时
2>给用户提示请求超时
3>根据用户操作再次请求数据
问题:
2.地图导航不能用了怎么办?
答案:
1>提示用户打开导航定位功能
问题:
3.SDWebImage具体如何实现
答案:
1>利用NSOperationQueue和NSOperation下载图片,还使用了GCD的一些函数(解码GIF图片)
2>利用URL作为key, NSOperatino作为value
3>利用URL作为key, UIImage作为value
问题:
4.AFN与ASI有什么区别
答案:
1> AFN基于NSURL, ASI基于底层的CFNetwork框架,因此ASI的性能优于AFN
2>AFN采取block的方式处理请求, ASI最初采取delegate的方式处理请求,后面增加了block的方式
3>AFN只封装了一些常用功能,满足基本需求,直接忽略了很多扩展功能,比如没有封装同步请求; ASI提供的功能比较多,预留了各种接口和工具供开发者自行扩展
4>AFN直接解析服务器返回的JSON, XML等数据,而ASI比较原始,返回的是NSData二进制数据
问题:
5.你在实际开发中,有哪些手机架构与性能调试经验
答案:
1>刚接手公司的旧项目,模块特别多,而且几乎所有的代码都写在控制器里面,比如UI控件代码,网络请求代码,数据存储代码
2>接下来采取MVC模式进行封装,重构
自定义UI控件封装内部的业务逻辑
封装网络请求工具类
封装数据存储工具类
问题:
6.如果在网络数据处理过程中,发现一处比较卡,一般怎么解决
答案:
1>检查网络请求操作是否被放在主线程了
2>看看异步请求的数量是否太多了(子线程数量)
3>数据量是否太大?如果太大,先清除一些不必要的对象(看不见的数据,图片)
4>手机CPU使用率和内存问题
问题:
7.请介绍一下isa指针,怎么用,用来干嘛?
答案:
1>根据一个对象,找到对应的class. isa底层又指向元类.
问题:
8.控制器的生命周期
答案:
1>viewDidload
2>viewWillDidload (之类等等)
问题:
9.怎么实现和qq类似的收到图片显示一个小三角(使用quarzcore)view使用背景图片
答案:
1>使用coregrahils改变view的样式,裁剪出一个三角
问题:
10.coreanimation里面含有什么东西
答案:
1>核心动画, BaseAnimation, 转场动画 等等.