大厂面试(三)

一、陌陌(2019-07)

1、给person类中有一个成员变量:NSString *name;给此成员变量写setter方法(非arc模式下)
2、简述一下oc的内存管理模式(包括alloc、retain、copy,release,autorelease,dealloc这些方法的理解)
3、描述autorelease对象释放时机,简述aotoreleasePool的工作机制
4、在Object-C中如何判定两个对象完全相同
5、以下代码作为一个UIButton的响应方法会有什么问题?能看到log么

- (void)clickButton {
    dispatch_sync(dispatch_get_main_queue(), ^{
        NSLog(@"momo run");
    });
}

6、在一个类中retain一个NSTimer类型的成员变量会有问题么?如果有请简述问题产生的根本原因

扩展:(按照自己对Object-C的理解发散即可)

1、简述C的函数调用和Object-C的消息传递的机制的区别

2、Object-C中的category的实现原理和runtime有关么?如果有关请解释一下相关联系

3、是否使用过NSOperationQueue和GCD来管理线程?两者有什么区别?两者的实现机制的根本不同之处?(如果觉得要写的太多可以写面谈)

4、列举在iOS开发中擅长的模块和其特点使用时的注意问题等(例如,音频录制和播放,mapkit定位等)

5、简述自己经常使用的第三方库和其优缺点(列举1,2个即可)

关于你,如果你与一下Tag有关,请打勾
- 有微博
- 经常熬夜
- 写过5篇技术blog
- 会翻墙
- 写过C
- 写过C++
- 会给iphone越狱
- 买过很多技术书籍
- 会下载很多应用

二、京东

1、请写出以下代码输出

 int a[5] = {1, 2, 3, 4, 5};
 int *ptr = (int *)(&a + 1);
 printf("%d, %d", *(a + 1), *(ptr + 1));

2、写一个标准宏Max,并给出以下代码的输出

int array[5] = {1, 2, 3, 4, 5};
int *p = &array[0];
int max = Max(*p++, 1);
printf("%d %d", max, *p);

3、在一个对象的方法里, self.name=@"object"; name=@"object"有什么不同?
4、怎样使用performSelector传入3个以上参数,其中一个为结构体?
5、UITableViewCell上有个UILabel,显示NSTimer实现的秒表时间,手指滚动cell过程中,label是否刷新,为什么?
6、有a、b、c、d 4个异步请求,如何判断a、b、c、d都完成执行?如果需要a、b、c、d顺序执行,该如何实现?
7、使用block有什么好处?使用NSTimer写出一个使用block显示(在UILabel上)秒表的代码。
8、一个view已经初始化完毕,view上面添加了n个button(可能使用循环创建),除用view的tag之外,还可以采用什么办法来找到自己想要的button来修改Button的值。
9、tableview在滑动时,有时候会大量加载本地图片,这时候会很卡,如何解决加载耗时过长导致不流畅的问题?
10、给定一个如下的字符串(1,(2,3),(4,(5,6)7))括号内的元素可以是数字,也可以是括号,请实现一个算法清除嵌套的括号,比如把上面的表达式的变成:(1,2,3,4,5,6,7),表达式有误时请报错。


三、优酷

1、如何声明私有变量和私有方法?
2、assign、retain、copy分别起什么作用?重写下面的属性的getter/setter方法
3、如何声明一个delegate属性,为什么?
4、autorelease的对象何时被释放
5、这段代码有问题吗?如何修改?

for (int i = 0; i < 10000; ++i) { 
    NSString *str = @"Abc"; 
    str = [str lowercaseString]; 
    str = [str stringByAppendingString:@"xyz"];
    NSLog(@"%@", str); 
 }

6、UIViewController的viewDidUnload、viewDidLoad和loadView分别什么时候调用?UIView的drawRect和layoutSubviews分别起什么作用?
7、自定义NSOperation,需要实现哪些方法?
8、如何扩展ObjC里面类的方法?
9、用代码实现一个单例
10、用代码实现一个冒泡算法
11、UITableView是如何重用cell的?
12、如果更高效地显示列表
13、Cocoa中MVC是怎么实现的?
14、描述KVC、KVO机制
15、使用或了解哪些设计模式


四、网易(2016)

一面

1、简单介绍下自己。
2、举个其中一个项目例子,说一下自己遇到的一些困难及解决方法。
3、用过哪些第三方?(AFNetworking,Masonry,MBProgressHUD,SDWebImage等等)。
4、说下SDWebImage使用原理?
5、如果让你设计开发一个类似SDWebImage这样的库,你该从哪些方面考虑?可能会遇到哪些困难的问题?如何解决?

二面

1、 简单的自我介绍。
2、一些项目实现方法。
3、 让自己实现下拉控件,如何实现。
4、问你做过的项目技术难点在哪,有哪些功能亮点。
5、问你有没有做过一些比较复杂的控件。


五、360面试题

转载自:iOS面试:360面试题记录与总结 - Jabber_YQ
1、说说oc语言和别的语言的区别。
2、既然你说runtime会把方法调用转化成objc_msgSend(receiver, selector),那说说消息机制的流程。
3、既然你前面一直有提到方法,那说说SEL与IMP的差别吧。
4、说一下你对内存管理的理解吧。
5、有哪些情况会出现内存泄漏。
6、前面你有提到可以用_weak来解决block中的循环引用,还有别的方法吗。
7、控制器Apush到B后,有哪些方法可以让B的数据传递到A。
8、说说KVO的原理吧。
9、现在在TableViewCell上有一个UILabel,UILabel上写是倒计时,倒计时用NSTimer实现,现在滚动tableView,UILabel上的text会变吗。
10、frame和bouns的区别。什么时候frame和bouns的高宽不相等。
11、说说进程和线程的区别。
12、NSOprationQueue 与 GCD 你平时一般用哪个。NSOprationQueue 与 GCD 的区别。


六、美团一面

1、如何让一个label靠左,一个label靠右,然后右边的label能够完全显示
2、算法奇数排在前面,偶数排在后面
3、智力题,一个骑手送餐,ABCD商店,送给abcd四个人
4、kvo的实现原理
5、消息调用的过程
6、get和post的区别
7、http有哪些部分
8、tcp和udp的区别
9、七层模型


七、美团二面

1、讲一讲响应链如何通过一个view查找它所在的viewController,如何扩大view的响应范围
2、微信分享大图如何实现
3、从进程的角度 进程间的通信方式,并举例 两个进程分别指向同一个地址空间并初始化一个值,分别输出是什么 算法,判断一个字符串是否所有的大写字母都在小写字母前面 修改podfile文件后,
怎么用git diff显示出修改后版本和当前版本的不同,让我来设计 程序执行的过程 如果想要删除自己的一段代码,如何删除(在程序执行的过程中删除) 用过脚本编程吗 了解前后端吗 各科成绩,成绩排名


八、泰康 2019-06

1、写出下面程序的打印日志

dispatch_queue_t quete = dispatch_queue_create("com.taikang.com", DISPATCH_QUEUE_SERIAL);
dispatch_async(quete, ^{
    NSLog(@"1------%@", [NSThread currentThread]);
});
dispatch_async(quete, ^{
    NSLog(@"2------%@", [NSThread currentThread]);
});
dispatch_sync(quete, ^{
    NSLog(@"3------%@", [NSThread currentThread]);
});
dispatch_async(dispatch_get_main_queue(), ^{
    NSLog(@"4------%@", [NSThread currentThread]);
});
NSLog(@"5------%@", [NSThread currentThread]);

2、深拷贝与浅拷贝的区别?如何令自己定义的对象具有拷贝功能?
3、如何优化APP的启动速度?
4、什么事method swimming? 讲讲自己的使用场景以及使用的注意事项
5、KVO的工作原理
6、手写一个单例
7、给定一个字符串,请你找出其中不含有重复字符串的最长子串?

输入:abcabcbb
输入:3
解释:因为无重复字符串的最长子串是“abc”,所以其长度为3

九、iOS高阶面试题(2017)

1、NSCache类当中是如何解决时间复杂度问题的.请说明其原理.
2、应用启动时是用怎样加载所有依赖的Mach-O文件的?
3、什么是冷启动,什么是热启动?
4、有没有做过项目的优化,请列举你所知道main()函数之前耗时的因素都有哪些,点击应用响应时间多少ms之内不会让用户察觉到
5、属性 可以与set方法和get方法 三者同时存在吗,如果不行,请说明原因?
6、Runtime机制是什么?有没有写过方法欺骗?简述一下
7、GCD和NSoperation的区别之处,请分别说一下特点?
8、Reachability是用来判断网络状态的,请简述一下其原理?
9、layoutSubviews这个方法一般在什么情况下调用的?
10、在一个表内有很多cell,每个cell上有很多个视图,如何解决卡顿问题(提示Runloop)。
11、Objective-C语言中闭包是如何实现的,闭包中有什么需要注意,闭包运行环境是在堆还是在栈。


十、2018年8月笔试(一)(群友提供)

1、当使用 weak修饰的对象被释放后,系统是否直接释放掉此对象?其实现原理是什么? (15分)
2、声明可变数组可以用weak修饰吗?和用strong修饰有什么区别? (10 分)
3、反转二叉树
4、ViewControllerA push到ViewControllerB,再从B pop回A的生命周期.(15分)
5、UIView和CALayer有什么关系? (10 分)
6、下面代码的输出是什么?(10分)

@implementation Son : Father
- (id)init {
    if (self = [super init]) {
          NSLog(@"%@", NSStringFromClass([self class]));
          NSLog(@"%@", NSStringFromClass([super class]));
    }
    return self;
@end

7、在项目中,若出现以下的代码可能会有什么问题?(10分)

for (int I = 0; i < 1000; i++) {
    NSString *num = [NSString stringWithFormat:@"%d", i]; //num是临时变量
}

8、内存泄漏可能会出现的几种原因,聊聊你的看法?如果是非OC对象如何处理?若常用框架出现内存泄漏如何处理?(20分)


十一、2018年8月笔试(二)(群友提供)

1、frame和bounds 有什么不同?
2、Objective-C 的类可以多重继承么?可以实现多个接口么? Category 是什么?重写一个类的方式用继承好还是分类好?为什么?
3、用@property声明的NSString / NSArray / NSDictionary经常使用copy 关键字,为什么?如果改用strong关键字,可能造成什么问题?
4、Category (类别)、Extension (扩展)和继承的区别?
5、什么时候用delete, 什么时候用Notification?
6、如何访问并修改一个类的私有属性?
7、一个objc对象的isa的指针指向什么?有什么作用?
8、isKindOfClass、isMemberOfClass、 selector 作用分别是什么?
9、lldb (gdb)常用的控制台调试命令?
10、_objc msgForward 函数是做什么的,直接调用它将会发生什么?
11、什么是TCP / UDP?
12、用伪代码写一个线程安全的单例模式。
13、HTTP协议中POST方法和GET方法有那些区别?
14、如何高性能的给 UIImageView 加个圆角?


十二、2019年5月笔试(群友提供)

1、下面代码中,_address和name有什么不同?什么情况下需要自己写getter或者setter方法?

@interface test : NSObject {
    NSString *_address
}

@property(nonatomic) NSString *name

@end

2、什么事ARC?ARC的实现原理是什么?
3、描述下OC中的NSNotificationCenter的使用?delegate模式的使用?KVO的使用?
4、UIView的Frame和Bounds的区别?
5、UIView和CALayer的区别?
6、如果app比较大,怎样减少app的大小?
7、简述如何处理UI与耗时操作的通信,有哪些方式及各自的优缺点?


十三、网名“天空中的球”提供

1、如果让你实现属性的weak,如何实现?
2、如果让你来实现属性的atomic,如何实现?
3、KVO为什么要创建一个子类来实现?
4、类结构体的组成,isa指针指向什么?(这里应该将元类和根元类也说一下)
5、RunLoop有几种时间源?有几种模式?
6、方法列表的数据结构是什么?
7、分类是如何实现的?它为什么会覆盖掉原来的方法?


部分题目转载自:
2017年iOS高阶面试题 - 筑梦师Winston
京东/优酷IOS面试题 - LZM轮回
网易iOS研发面试题分享
iOS面试笔试题(2018年8月)- 爱恨的潮汐

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

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,094评论 1 32
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,077评论 4 62
  • 京东面试题 1、请写出以下代码输出 参考答案: 2, 随机值这种类型题好像挺常见的。考的就是C语言上的指针的理解和...
    LZM轮回阅读 4,133评论 5 45
  • 无欲则刚66阅读 142评论 0 0
  • 我相信有大部分人跟我一样都不是什么勤快人,至少在我认识的一些人来说拖延症差不多感染了身上的每一颗细胞,绝对属于中度...
    鱼小坤阅读 203评论 2 1