ios 工作了好几年了,记录下最开始的时候的一些面试

1.如何取消/结束一个线程,其实这个也是不常用的,但是面试官问这个其实是想了解开发者对代码的熟悉程度,包括我现在也没有用过这个功能,cancel/exit任何语言其实都是包含这个功能的

2.如何设置定时本地推送。LocalNotification有个fireDate只要轮循设置你所需要 的时间都会出发这个推送,和杀掉进程没有关系

 

3.WKWebView混编Hybrid,其实这个没啥可讲的,就是要懂得js和ios 原生的交互,数据的传输

 

4.app如何清楚缓存,这个无非就是去轮循沙盒内每个文件的大小,然后计算得到缓存值,并且remove即可,估计是想问一些关于沙盒的操作

 

5.聊天项目,聊天消息是怎么保证有序存储的,这个如果有接触即时通讯项目的话是很简单的,我现在做的就是即时通讯的项目,只是根据msgTime时间戳以及msgid i++格式的,有个极限值,超过的话会从1开始重新计算(服务器逻辑),我们的极限值是1000000,msgid和msgTime有两套,自己发的话是根据本地的存的,本地存的数据是从最大值1000000开始计算,这样就保证了本地的聊天顺序和服务器的聊天顺序不存在冲突,例如在发送失败的时候,如果是notify的话就是服务器算好的,如果清空本地聊天记录,那么进入聊天界面将会从新开始请求,这样以服务器的为准,那么数据更不会出现错乱,完全与服务器一致并且不会出现发送失败的本地数据。每次聊天界面的排序是优先根据msgTime来排序的然后是根据msgId排序的。

 

今天遇到一个搞笑的事:数组的查询,有倒序和正序,我把NSEnumerationConcurrent当成了并发,其实concurrence这个是并发,Concurrent这个只是按照当前的排序。。。~

typedef NS_OPTIONS(NSUInteger, NSEnumerationOptions) {

    NSEnumerationConcurrent = (1UL << 0),

    NSEnumerationReverse = (1UL << 1),

};
 

6.如何程序保持后台长时间运行。这个apple提供了一个后台任务。并可以监听进程被杀死的时间

 

7.批量图片卡顿优化,这个涉及到image的压缩,涉及到尺寸以及data大小的压缩,具体场景具体分析,配合tableview/collectionview的话,其实是在表停顿下来之后加载可视区域的image以及信息,这样可以提升tableview/collectionview的流畅度,同时减轻服务器压力,我们的在请求图片的时候,其实就是和服务器约定,然后传送特殊数据,然后服务器去给我们相应的结果,可以减少图片所耗的流量和资源,可以理解为以空间换时间

 

8.有没有使用过drawRect:

你可能感兴趣的:(ios 工作了好几年了,记录下最开始的时候的一些面试)