ps:后面按照本身面试的时间顺序来写,记录的面试题是我印象比较深入的,并不必定很全,暂时先提供面试题,后面考虑给出相应的题解。
我面试了大大小小的各类公司,BAT、bigo、字节、快手、伴鱼等,由于一些缘由,也拒面了一些公司,拿了几家的offer。前端
伴鱼是我准备后参加的第一轮面试,有不少本身准备得不是很全,也没有彻底进入面试状态,面试结果不是很好,一面就挂了。web
TestObject *object1 = [[TestObject alloc] init]; __block TestObject *object2 = [[TestObject alloc] init]; object1.name = @"Mike"; object2.name = @"Sean"; __block int vi = 1; void (^handler)(NSString *) = ^(NSString *name) { object1.name = name; object2.name = name; vi = 2; } handler(@"Lucy"); NSLog(object1.name); NSLog(object2.name); NSLog(@"%i", vi);
引伸:面试
代码中的block是什么block,为何算法
58我面了不少次,一开始面的基础研发部门,后来给我转到了企业工具研发,中间时间拖得有点长,直接拒面了。swift
多线程相关后端
JavaScriptCore相关数组
58这个部门的面试就两轮,二面是群面(几我的轮流面你),第一次接触这种面试形式,压力仍是有点的。缓存
ReactNative相关安全
这个创业公司全程都是在聊天,后面问了些和iOS没多大关系的问题,而后就发了口头offer。性能优化
拼多多应该是本身面的一个相对较大的公司,面试过程当中和面试官有了点小分歧,后面问我源码在哪一个文件哪一行,后面问得问题也基本上是我以前没怎么接触过的。
百度问得和iOS相关的较少,CS基础相对较多。
由于一开始是在音乐的流程里,约面时间相对较晚,pcg那边想和我先聊下,而后再作选择,因而腾讯面了腾讯音乐和PCG两个部门
pcg在音乐以前面,面完一面后说一面过了,可是由于流程在音乐,因此让我选择一个流程走,我选了音乐,后来音乐挂了后没有好意思去舔回来。
腾讯音乐感受业务不是不少口,感受面试官不知道问我什么好,一面后就没有后续了。
微博有点迷,感受面试官就是对着题库问问题,感受本身回答还OK,可是一面后不了了之了。
Bigo整个流程推动很快,一面二面都在当天完成,可是bigo三面后挂了,有点迷,我猜想是由于二面的算法题没有给出最优解。
算法(三道手写)
iOS基础:
RN、flutter、weex:
看完文章若是你正在跳槽或者正准备跳槽不妨动动小手,添加一下我们的交流群1012951431来获取一份详细的大厂面试资料为你的跳槽多添一份保障。
贝壳找房也感受有点迷,和面试官感受聊很不错,问得问题都很开放,很考验功底,最后还问我你感受你过了么。可是一面后就没有而后了。
完美的面试有点匆忙,面试的问题也颇有深度,后续由于必需要去现场面试,出于安全因素考虑,没有去面下去。
滴滴效率是真的高,面试流程一夜走完,当晚出结果,从面试到发offer仅仅用了4天左右的时间。
ps:面试题以前均有涉及,再也不详写
猿辅导面试仍是有点难度的,算法写完还要跑case,第二道题目跑case不正确,看代码debug,后面由于时间不够没有给出正确结果,后面就没有后续了。
算法:两题LC medium(都要求写完跑case)
这边有个小插曲,由于以前高强度的面试,后面拿了几个不错的offer后就不太想继续面了,感受面试状态也是一个正态分布的曲线,拒了高德面试后hr找我聊了下,而后又答应继续面试,后面由于本身确实没有发挥出正常的水平,致使一面挂了,不过hr后来请我喝了杯咖啡仍是蛮开心的。
代码题:
Person *p = [[Person alloc] init]; p.name = @"zhangsan"; NSArray *a = @[p]; NSArray *b = [a copy]; NSArray *c = [a mutableCopy]; Person *p2 = [c firstObject]; p2.name = @"lisi";
NSNotificationCenter *__weak center = [NSNotificationCenter defaultCenter]; id __block token = [center addObserver:kDdiRegisterNotification object:nil queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification *note) { [self getDataWithComplete:completeBlock]; [center removeObserver:token]; }];
字节面了两个部门,一个是头条还有一个是抖音,字节是在我回去动了个小手术后面的,面试也不是很在状态。
NSLog(@"1"); dispatch_sync(^{ NSLog(@"2"); }); NSLog(@"3");
OC 消息发送机制(提到了isa、类对象,引出下面问题)
抖音面试有点迷,感受面试官和我彻底在两个频道,面试官问的内容我明明回答了可是他恕我啥都不会,不知道是否是没有get到他的点。
快手也是在我动完小手术后面的,我感受面试发挥正常,和面试官聊也不错,可是玄学的是本身仍是挂了,后面有其余BG想捞也不想面了。
设计一个下载任务
• 微信底部四个tab 包含首页让你实现要多久,为何(这个真的没有明白是想问啥)
• 算法:链表反转
一天四轮的面试确实是高强度的,一天下来整我的会很疲惫,致使前面拿到了一些offer后,紧绷的弦立刻就松懈下来了,后面几轮高德、字节以及快手的面试都没有发挥出本身应有的水平,所幸的是总体结果差强人意。面试须要不断复盘总结,不至于此次面试问的问题不懂下次还不懂,还有知识须要不断积累,不能再临时抱佛脚了。
简历决定着你可否有面试机会,一份好的简历可让你事半功倍。
iOS有不少东西咱们是看不到具体的实现的,毕竟是闭源的,可是咱们能结合咱们的一些经验去猜想苹果的一些实现方式。目前iOS面试问的问题愈来愈细,愈来愈底层,因此阅读一些源码是及其有必要的,iOS通常常考的点以下(这边列举得可能并非很全):
Objective-C语言相关
swift相关:
iOS相关
这部分主要看你基础是否是扎实了,做为一名RD,无论作什么,这些知识都是要掌握的。
算法基本上是工程师面试一定考察的点,如今愈来愈多的公司面试考察算法,做为iOS开发的同窗,在面试以前至少要刷下《剑指offer》上的全部题目,这本书上的题目都是经典中的经典,面试出现几率极高。有时间的话能够刷下LeetCode上easy和medium难度的题,iOS面试,不多有考察hard的题目,可是就算是遇到hard的题目也不要过于紧张,仔细审题,寻找突破口。算法是一个积累的过程,如今LeetCode能够每日打卡,这是一个很好的积累手段。下面罗列下常考的数据结构和算法:
数据结构
算法
看完文章若是你正在跳槽或者正准备跳槽不妨动动小手,添加一下我们的交流群1012951431来获取一份详细的大厂面试资料为你的跳槽多添一份保障。