2020面试iOS真题,你能答出几道?

事件起因

含泪忠告:不要在周末没准备的情况下去luo面,不要去luo面,不要去luo面,不要去luo面。一旦被暴击,你的周末和自信心就彻底毁了。

为啥我会这么说?到底咋回事呢?事情是这样的:

这周双休,手机弹出某聘的消息,想着去看看目前iOS的概况,就投了简历,然后就开始愉快的玩手机,没一会儿,电话直接来了,问现在方便吗,想简单聊聊,了解一下。我一想,简单聊聊?可以啊,反正才一面,简单聊聊嘛。我就回了个:可以的。没想到,就是这三个字,让我的周末如坐针毡,内心受到了暴击。整个面试过程有的答案似是而非,有的只记得大概,有的直接挠头。到现在,我内心都还平静不下来,也急切的想把题目分享出来,让更多的人看到2020的真实情况。答案没有细细整理,只有思路,语言大家自己组织就好。

注意了!目前正在准备面试和提升技术的iOS,可以加入!一起学习iOS交流技术 ,内推岗位!

如果大家想加入的话,可以点击【社区】查看直接进入哦~

来吧,一起来感受下我是如何受到暴击的吧!!!

iOS面试题1∶谈谈你对KVC的理解?

答:KVC|可以通过(key)直接访问对象的属性,或者给对象的属性赋值,这样可以在运行时动态的访问或修改对象的属性当调用setValue:属性值forKey: @"name"的代码时,,底层的执行机制如下∶

1、程序优先调用set key>:属性值方法,代码通过(setter方法|完成设置。注意,这里的<key是指成员变量名,首字母大小写要符合(KVC)的命名规则,下同

2、如果没有找到setName:|方法,KVC机制会检查(+(BOOL)accessInstancelariablesDirectly方法有没有返回VYES ,默认该方法会返回(VEs ,如果你重写了该方法让其返回NO的话,那么在这一步(KC 会执行(setValue: forUndefinedKey:)方法,不过一般开发者不会这么做。所以KVC机制会搜索该类里面有没有名为<kep)的成员变量,无论该变量是在类接口处定义,还是在类实现处定义,也无论用了什么样的访问修饰符,只在存在以<key命名的变量,KVC都可以对该成员变量赋值。

3、如果该类即没有set<key>:方法,也没有(_<key>成员变量,KVC机制会搜索(_is<Key>)的成员变量。

4、和上面一样,如果该类即没有set:方法,也没有_和_is成员变量,KVC机制再会继续搜索和is的成员变量。再给它们赋值。

我的自信心 +1,心想,还行。

iOS面试题2: oc中可修改和不可以修改类型?

答:可修改不可修改的集合类,这个我个人简单理解就是可动态添加修改和不可动态添加修改
一样。比如NSArray和NSMutableArray,前者在初始化后的内存控件就是固定不可变的,后者可
以添加等,可以动态申请新的内存空间

image

iOS面试题3:熟悉哪些设计模式?

答:眉头一皱,发现事情并不简单!!自信值开始降低~

MVC 模式、单例模式、MVVM 模式、策略模式、适配器模式、模板模式、、、、、emmmm

1.mvc 模式:model 保存应用模型和处理数据逻辑、view 负责 model 数据和交互控件的显示、
controller 负责 model 和 View 之间的通讯
2.单例模式:用一个静态方法返回这个类的对象。这个对象是全局唯一的。整个项目里面只开
辟一块内层,比如登录之后获取的用户数据存储、NSNotificationcenter、NSUserdefaults,
sharedApplication。
缺点:这块内层直到项目推出时才能释放。
优势:使用简单,延时求值,易于跨模块, 便于资源共享控制,方便传值和修改单例的属性

iOS面试题4:怎么用 copy 关键字?

答:用途:
NSString、NSArray、NSDictionary 等等经常使用 copy 关键字,是因为他们有对应的可变类型:
NSMutableString、NSMutableArray、NSMutableDictionary;
block 也经常使用 copy 关键字,具体原因见官方文档:Objects Use Properties to Keep Track
of Blocks:
MRC 中,方法内部的 block 是在栈区的,使用 copy 可以把它放到堆区.在 ARC 中写不写都行:对于 block 使用 copy 还是 strong 效果是一样的,但写上 copy 也无伤大雅,还能时刻ᨀ醒我们:编译器自动对 block 进行了 copy操作。如果不写 copy ,该类的调用者有可能会忘记或者根本不知道“编译器会自动对 block进行了 copy 操作”,他们有可能会在调用之前自行拷贝属性值。这种操作多余而低效。
copy 此特质所表达的所属关系与 strong 类似。然而设置方法并不保留新值,而是将其“拷 贝” (copy)。 当属性类型为 NSString 时,经常用此特质来保护其封装性,因为传递给设置方法的新值有可能指向一个 NSMutableString 类的实例。这个类是 NSString 的子类,表示一种可修改其值的字符串,此时若是不拷贝字符串,那么设置完属性之后,字符串的值就可能会在对象不知情的情况下遭人更改。所以,这时就要拷贝一份“不可变” (immutable)的字符串,确保对象中的字符串值不会无意间变动。

image

iOS面试题5:谈谈你对多线程开发的理解?ios中有几种实现多线程的方法?

答:啊,这~,磨叽了半分钟,原理啊,记不太清了.....

好处:
1.使多线程可以把占据时间长的程序中的任务放到后台去处理
2.用户界面可以更加吸引力,这样比如用户点击了一个按钮去触发某些事件的处理,
可以弹出一个进度条来显示处理的进度
3.程序的运行速度可能加快
缺点:
1.如果有大量的线程,会影响性能,因为操作系统需要在它们之间切换。
2.更多的线程需要更多的内存空间。

image

iOS面试题6:ViewController生命周期?

答:
按照执⾏顺序排列:

  1. initWithCoder:通过nib⽂件初始化时触发。
  2. awakeFromNib:nib文件被加载的时候,会发生一个awakeFromNib的消息到nib
    文件中的每个对象。
  3. loadView:开始加载视图控制器⾃带的view。
  4. viewDidLoad:视图控制器的view被加载完成。
  5. viewWillAppear:视图控制器的view将要显示在window上。
  6. updateViewConstraints:视图控制器的view开始更新AutoLayout约束。
  7. viewWillLayoutSubviews:视图控制器的view将要更新内容视图的位置。
  8. viewDidLayoutSubviews:视图控制器的view已经更新视图的位置。
  9. viewDidAppear:视图控制器的view已经展示到window上。
  10. viewWillDisappear:视图控制器的view将要从window上消失。
  11. viewDidDisappear:视图控制器的view已经从window上消失。
![image](https://upload-images.jianshu.io/upload_images/19704571-020e7fa4f456cffc.png?imageMogr2/auto-orient/strip|imageView2/2/w/234/format/webp)

iOS面试题7:内存管理的几条原则时什么?按照默认法则.那些关键字生成的对象?

答:
需要手动释放?在和property结合的时候怎样有效的避免内存泄露?
谁申请,谁释放
遵循Cocoa Touch的使用原则;
内存管理主要要避免“过早释放”和“内存泄漏”,对于“过早释放”需要注意@property
设置特性时,⼀定要⽤对特性关键字,对于“内存泄漏”,一定要申请了要负责释放,
要细心。
关键字alloc 或new 生成的对象需要手动释放;
设置正确的property属性,对于retain需要在合适的地方释放

**........纯手打字

本人自己整理的一些面试进阶资料,iOS底层视频+BAT面试专题PDF+核心笔记等资料+2020年《大厂最新常问iOS面试题+答案》希望能够帮助到大家提升技术。

如果大家想要的话,可以点击【社区】查看直接哦~

喜欢本文的话,不妨顺手给我点个小赞、评论区留言或者转发支持一下呗~

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

推荐阅读更多精彩内容