前言
今天,没有风和日丽,没有太阳高照夏夏苦逼的坐着公交车去面试了一把。无论结果如何,总要涨一波经验的说于是乎夏夏决定复盘一下~!
夕阳.jpg过程复盘
首先呢,当然是填表格啊什么的,如何是人事来问你一些问题(这都不是重点),接下来就是面试官问你的问题啦~
第一题是这样的:
如何同时上传多张图片,保证到达服务器的顺序?
我略微思考了下。。如果我用串行队列去做的话,过程也是一张一张的啊接着问了下面试大大,是多张同时上传嘛?得到了一个肯定的答复后,我继续思考!!!同时上传(异步队列开启多个线程去上传图片),图片上传的过程是客户端将图片转化为`NSData`类型再转化`formdata`传到服务器上的,于是乎我要保证它们是同时到达的,可是网速或者线程传输速度是不相同的,图片的大小也是不相同的。并且我可以监听到图片的上传进度!于是乎,我在想是不是可以在图片上传进度到达99%的时候暂停下,然后按照顺序去进行最后一步(是不是我想多了想多了想多了!!!)。
恩。。。。也有可能题目是这样的,我批量上传多张图片,如何保证图片到达的顺序是按照我开始排练的顺序呢?
于是乎,可以这样做:
dispatch_queue_t lpQueue = dispatch_queue_create("slpQueue", DISPATCH_QUEUE_SERIAL);
for (int i = 0 ;i< 5; i++) {
dispatch_async(lpQueue, ^{
sleep(1);
NSLog(@"图片上传咯------图片%d", i);
});
}
创建一个串行队列,异步执行图片上传操作~ 结果是这样的:
异步串行.jpeg很好很强大思密达~! 当然,也有朋友说我是用AFN的,图片上传本来就是一个异步线程操作,如果这样写返回还是没办法确定的哟,这个时候你可以用
GCD
的group
信号量,用enterGroup
和leaveGroup
去控制,具体代码可以看我之前的文章。
第二题是比较基础的,问了下oc的@property属性是啥意思,有什么常用的修饰词。这个是比较常见的了,@property就是系统会自动实现setter,getter和_var。
第三题就是strong
和copy
修饰的具体运用,在NSString
,NSArray
等类之前的修饰,基本上都是copy
啦,用strong会出问题的,具体不解释了~
其他就是一些页面的布局,flame布局或者约束自动布局都是可以的。
问完了技术,就是问了下你平时的写代码的时候遇到过什么比较困难的问题,是怎么解决的,然后就是为什么离开上一家公司(这些方面可以吹个牛什么的,不要太耿直)。
结束
现在iOS行情貌似不太好的样子,不过还是要提高自己的技术水平,毕竟高技术的人才还是稀缺的,祝愿大家工作都顺利吧~
面试方面的参考资料:https://github.com/ChenYilong/iOSInterviewQuestions/blob/master/0101《招聘一个靠谱的iOS》面试题参考答案/《招聘一个靠谱的iOS》面试题参考答案(上).md
尽量多理解和运用,毕竟学到的才是真的~
网友评论