2021iOS面试总结day6

今天没有面试,我为了之前的offer后面就没有再投简历了。因为之前的hr问我什么时候可以入职,我说我周一还有两个面试,周二之前给你答复,很有可能会入职。我觉得做人应该讲信用,说到做到,既然同意入职了就不要再约别人家的面试,这样也是浪费其他公司的资源。结果还是我太年轻啊,我替别人考虑的太多了,别人可不会这么想,我很有可能只是一个备胎。第二天我又等了一天,还是没回复我,我下午就问他们入职时间确定了吗,又和我说晚点给我答复。晚上给我打电话了,最后说周五才能确定我的入职时间,我问她是不是能不能入职还不好说,她说是,说他们对让我入职的意向还是很大的。我直接被气到了,不想再说什么了,我说知道了然后就挂断了。之前问能不能确定,她说基本没什么问题,现在又改口这样说,这样的公司没有一点诚信可言。因为是这一家大公司,虽然给的工资不高,但是按照国家法定假日休息双休还可以调休,这点是我最满意的,而且做的是教育行业,是一件正能量的事情,可以为国家做贡献我也比较满意,最后才决定去的,可是没想到公司里面的人这样不守信用,结果另我很失望,浪费了我将近一周的面试机会。

这次的事情也给了我一个教训,不能轻信公司给出的承诺,即使给你发了Offer也不能完全相信,一直到入职之前都要一直面试。毕竟现在不靠谱的公司太多了。做人太实在很容易吃亏,实话实说都会被怀疑,一些公司就喜欢听假话。但是我也确实不是会说假话的人,良心有愧,只能说这个公司不适合我,什么样的公司找什么样的人。

来上海一周多了,我还没有开始投简历,之前都是公司找的我让我去面试,为了熟悉环境同时巩固一下面试题我也没想太多就去面试了,最后要么是公司我不喜欢,要么是岗位不适合我,结果都不理想。这周开始要自己投简历了,这样的话可以首先自己筛选一下,希望能有一个好的结果吧。

下次再收到面试邀请之前先问三个问题:

1.你们公司做的是自己的项目吗?

2.你们招的是原生开发吗?

3.你们的工作模式是大小周吗?

确定这三个答案以后再去面试,以免踩雷浪费面试机会。

今天刚刚公开简历就收到了面试邀请,有一家公司让我晚上六点去面试,我想今天闲着也是闲着,也不耽误后面的面试安排,那就去看看吧。面试之前我还在想怎么让晚上六点面试,不会六点不是下班时间吧,后来觉得可能他们有工作安排,所以下班以后再面试我,没多想就答应了。招聘要求上只写了要求熟悉OC还有网络,我觉得也没什么问题。坐了一个多小时的地铁,下了地铁以后一看还要走20分钟才到,公司的位置太偏远了,瞬间对这个公司没有好感了。但是既然答应了面试也不能爽约啊,硬着头皮去了,去的途中天已经快黑了,而且周边环境很荒凉,一直在想自己是不是被骗了。到了以后是一个像酒店一样的地方,心里更加忐忑了,找错楼层把10楼当成1楼,还被保安嘲笑一番。终于到了公司,首先接待我的是HR小姑娘,人长得很漂亮,而且说话特别客气有礼貌,来的时候问我住的远不远,走的时候告诉我怎么走,应该是目前面试这几家印象最好的了,不管面试成功与否,对面试者起码要尊重,这也代表了一个公司的形象。

后来填完表以后就开始面试了,公司一共不到十个人,竟然两个人一起过来面试我。一个是产品经理,另一个可能是后台开发或者是技术总监。先是技术总监问我会不会跨平台开发,我直接惊掉了,来之前我特意看了一下没要求会跨平台开发,这是想节省人力资源啊,看我会Vue想让一个人把iOS和安卓的活都干了吧。然后又问了我网络部分,问我知不知道BIO、NIO,了解过Restful吗,对于Restful的API如何网络请求我确实没用过,我问他们这些是干什么用的,他说他们的后台用的是PHP、不但包括Get、Post还包括Put、Delete等操作。我们之前公司的后台是用Java写的,没用过PHP,我还以为确实有这种请求方法我不知道呢。回家一查这些都是后台的知识点,iOS这边还用AFNetworking请求就行了。后来是他们的产品经理问我问题:

1.runtime在实际开发中是不是经常使用?

我在项目中确实用到的不多,我就实话实说了。后来我回家看了一下,我的项目只有在给分类添加属性的时候用到了runtime,用到的地方一共不超过三个文件。我还知道交换方法可以用runtime,但是实际项目中一次没用过。

为了防止下次面试再被问到还是总结一下吧,不管用不用得到,得知道有哪些用处。

1.动态添加对象的成员变量和方法

2.动态交换两个方法的实现

3.实现分类也可以添加属性

4.实现NSCoding的自动归档和解档

5.实现字典和模型的自动转换

其实也并不是项目中用不到,而是都在第三方里面用的,我们平时使用直接调用了,没有研究过内部的原理。

2.都用过哪些锁?

我想说我一个也没用过,直接这样说也不好。那就说一下有哪些锁吧,互斥锁、自旋锁、条件锁,前两天刚背过又忘了,后来他们提醒我还有递归锁、一般锁、分布式锁。

专业的回答iOS有八种锁,分别是:@synchronized(关键字加锁)、NSLock(对象锁)、dispatch_semaphore(线程加锁)、NSConditionLock(条件锁)、pthread_mutex(互斥锁)、OSSpinLock(自旋锁)、pthread_mutex(recursive)(递归锁)、NSRecursiveLock(递归锁OC)

3.说一下事件的传递机制和响应链机制

感觉在考我小作文,我不知道具体应该说哪方面,让面试官提示我一下他也不说,明显他也不是很懂。

正确答案:

事件的传递机制:

触摸事件的传递是从父控件传递到子控件

也就是UIApplication->window->寻找处理事件最合适的view

事件的响应链机制:

事件响应链的响应刚好和事件传递相反,事件传递是从UIApplication管理起点,逐级向下传递。而响应链则从下向上传递。最有机会处理事件的就是通过事件传递找到的 first responder,如果没有进行处理,就会沿着事件响应链传递给下一个响应者 nextResponder,一直追溯到最上层 UIApplication。若都没有进行处理,就丢弃事件。

4.说一下对Block的理解

我说了Block本质上是一个OC对象,然后说Block是函数式编程,都说错了他们也没反应,看来他们也不明白,我只要一直说就行了,他们也不知道对错。

正确答案:

block是封装了函数调用以及函数调用环境的OC对象。一共有三种block,分别是全局的、栈上的、堆上的。可以获取其他函数局部变量的匿名函数。

5.KVO的具体应用场景

我说给多个页面发消息的时候用,再一次说错了他们也没反应。

正确答案:用来监听其他对象的值,当其他对象的值发生变化时通知当前对象。在我的项目中用到的地方:1.日历选择时监听选中的日期来实现日历的颜色变化。2.商品详情页面监听滑动变化来控制当前显示页面是否是图文详情。3.监听WKWebView的加载进度控制进度条的颜色显示。

6.用过哪些设计模式?

我说我项目用的是MVC模式,又问我观察者模式、工厂模式、单例模式都用吗,我说用过,还有很多设计模式,我也懒得说了

7.多线程里面用过哪些,如何处理多个请求并发的情况?

我说用的最多的就是GCD,又问我10个网络请求如何实现并发,如何判断最后一个请求完成,这个确实没有接触过。

正确答案:

1.使用GCD的dispatch_group_t

关键代码:

```

dispatch_group_t downloadGroup=dispatch_group_create();dispatch_group_enter(downloadGroup);dispatch_group_leave(downloadGroup);dispatch_group_notify(downloadGroup,dispatch_get_main_queue(),^{});

```

对以上4行代码可理解为:创建一个dispatch_group_t, 每次网络请求前先dispatch_group_enter,请求回调后再dispatch_group_leave,对于enter和leave必须配合使用,有几次enter就要有几次leave,否则group会一直存在。当所有enter的block都leave后,会执行dispatch_group_notify的block。

2.使用GCD的信号量dispatch_semaphore_t

关键代码:

```

dispatch_semaphore_t sem=dispatch_semaphore_create(0);dispatch_semaphore_signal(sem);dispatch_semaphore_wait(sem,DISPATCH_TIME_FOREVER);

```

对于以上代码通俗一点就是,开始为0,等待,等10个网络请求都完成了,dispatch_semaphore_signal(semaphore)为计数+1,然后计数-1返回,程序继续执行。 (这里也就是为什么有个count变量的原因,记录网络回调的次数,回调10次之后再发信号量,使后面程序继续运行)。

原文链接:https://www.jianshu.com/p/fb4fb80aefb8

8.大文件上传怎么做,断点续传怎么做?

因为对方看了我项目里社区上有视频可以播放,问我做没做过录播,这个问题不只被问过一次了,我说怎么总被问到,原来是看了我app里面有视频播放的页面。目前线上app的社区版本不是我做的,我们app上线时第一版的社区是我做的,那时候还没有视频功能。在我离职之前技术负责人让我研究了视频上传,那时候只做了短视频上传,后来没要求上线,这个功能就暂时搁置了。大文件上传可能要用到分片上传,和上面那个问题一样,因为并发太多,所以要运用信号量等待的功能,等一个片段上传完了再上传另一个片段。如果看看文档我一定可以研究出来的。但是面试的时候面试官只问你做没做过,如果没做过就默认你不会了。既然这样我只好把原理弄明白,下次再被问到的时候把原理说清楚,也可以说自己做过了。

参考:https://www.jianshu.com/p/04425dd2099e

断点续传:

```

if(me.isPause==YES){//将目前读到了第几个文件的第几片保存到本地[selfsaveProgressWithChunk:chunk file:file];return;}

```

这个操作实际上和上传过程中断网是一样的,为了断点续传,在断网或者暂停的时候,我们要将目前的进度保存起来,以便下次上传时略过前面已置finish的片。

9.单例模式里面的异步操作使用过吗?

我只知道单例在创建的时候可以使用GCD的写法。

```

+(MyClass*) sharedInstance

    {

        static  MyClass *_sharedMyClass;

        static dispatch_once_t token;

        dispatch_once(&token,^{ _sharedMyClass = [[MyClass alloc] initWith:something];} );

        return _sharedMyClass;

    }

```

这样写的原因:

1.dispatch_once这个函数,它可以保证整个应用程序生命周期中某段代码只被执行一次!

2.线程安全。

什么是线程安全?

答:多线程操作共享数据不会出现想不到的结果就是线程安全的,否则,是线程不安全的。

到最后我也没答出来几个,没想到一个小公司问的问题和大厂的难度差不多了,关键是待遇也达不到大厂的水平,我要是都能答出来就不会来他们这面试了。两个人像审犯人一样,感觉他们比我还紧张。想找一个前端后台iOS都会的人,我确实达不到他们的要求。最后可能感觉到双方都不太满意,面试很快结束了,不管怎么样还是很感谢这次面试机会,让我弥补了很多平时遗漏的知识点,对以后的面试很有帮助。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,560评论 4 361
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,104评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,297评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,869评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,275评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,563评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,833评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,543评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,245评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,512评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,011评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,359评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,006评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,062评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,825评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,590评论 2 273
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,501评论 2 268

推荐阅读更多精彩内容