iOS 2019年招人面试题以及答案

看到一篇文章,里边木有面试题答案,就小总结了一下。传送门

初次编写,如有不对之处请下方留言共同学习,拜谢了~!!!

希望对大家有所帮助,对我自己有所帮助

话不多说直接正题:

1、我们说的Objective-C是动态运行时语言是什么意思?
      首先,这个问题涉及到两个概念,运行时和多态。
      简单来说,运行时机制使我们直到运行时才去决定一个对象的类别,以及调用该类别对象指定方法。 
      好吧,上边是我复制的。我认为就是OC的动态特性。主要是:动态类型(如id),动态绑定,动态加载。之所以叫动态,
就是必须运行到时(run time)才会去做一些事情。

2、讲一下MVC和MVVM,MVP?
   好吧这个就是没吃过猪肉还没见过猪跑嘛?我最常用的是MVC。^^.
   简单来说MVC(Model View Controller)就是模型(Model)- 视图(View)-控制器(Controller)的缩写,
Model是用来处理数据,View是用来展示界面,Cotroller是用来调节他们两者之间的交互。
这个是最常用的。但是View和Model之间的直接交互,就导致了View和Model之间的耦合性比较大。
   MVP (Model View Presenter)是MVC模式的变种,使用Presenter代替了Controller,而且改变了数据流向
View和Model之间不再直接进行交互,而是通过Presenter来进行的。总体来说Presenter同时持有View和Model。
优点:整体框架分层清晰,降低了耦合度。
缺点:需要加入Presenter来作为协调Model和View的桥梁,同时也导致了Presenter的臃肿。在维护起来不方便。
   MVVM(Model View View-Model ViewModel)其实是对MVP的一种改进,他将Presenter替换成ViewModel,
并通过双向数据绑定来实现视图和数据的交互。
优点:使其数据流向更加清晰(脑补一下就是云对雨,x对风,大陆对长空)。一一对应起来。
缺点:这种架构没有统一的实现方式,每个人各有特色。我接触过得各有不同。而且有一定的学习成本。(不懂得人去学习也得一周左右吧,不抬杠,学过之后再来回话。"大牛请忽略")

3、为什么代理要用weak?代理的delegate和dataSource有什么区别?block和代理的区别?
  3.1 因为用weak修饰的对象引用计数不会+1.好吧。说白了就是不会造成循环引用。0.0~!
  3.2 delegate偏重于用户交互的回调。dataSource偏重于数据的回调。
  3.3 首先共同点都是实现回调的方式。算了直白点说就是一个一对一,一个一对多。一个编写简单,一个实现繁复。
对于什么时候用block什么时候用代理简单来说就是公共接口,方法较多,回调类型较多可以选择用代理。对于异步和简单的回调用block好一点。

4、属性的实质是什么?包括哪几个部分?属性默认的关键字都有哪些?@dynamic关键字和@synthesize关键字是用来做什么的?
  好吧。这个题很low,但是很考验人。不关心这些一般不知道
4.1 属性的实质,包含哪些:
  @property = ivar + getter + setter;
  利用class_copyPropertyList 查看类的所有属性
  利用class_copyIvarList查看类的所有成员变量
  利用class_copyMethodList查看类的所有方法
4.2 属性默认的关键字有哪些   (好吧,我也不知道。本体底部会有传送门)
  @dynamic告诉编译器,属性的setter与getter方法由用户自己实现。
  @synthesize的语义是如果你没有手动实现setter方法和getter方法,那么编译器会自动为你加上这两个方法。

4.2请看这里 属性的默认关键字有哪些


5、NSString为什么要用copy关键字,如果用strong会有什么问题?
  copy修饰的是深拷贝,改变源字符串,不影响copy的属性内容。
  strong修饰的属性就随着源字符串改变而改变了。
  这些都是说修饰可变类型字符串。当然不可变的就随意发挥了。尽量还是用copy。因为什么呢?因为如果你来回转换呢?哈哈


7、如何令自己所写的对象具有拷贝功能?
  实现NSCoping协议。如果自定义的对象分为可变版本与不可变版本,那么就要同时实现 NSCopying与 NSMutableCopying协议。

8、简述kvo、kvc、Delegate、通知,他们之间的区别?
  1、代理的效率比通知要高。
  2、代理比通知更加直接。
  3、kvo和通知,代理一样,都是负责通信的。kvo和通知没有返回值,而代理有返回值。
  4、代理是一对一,通知,kvo是一对多。

9、include与#import的区别?#import与@class的区别?
  怎么说呢, include 是C预言中用来引用的关键字。反正我是没用过
  #import 是OC中用来代替 include的关键字。#import确保了同一个文件只能被导入一次,从而别面了使用 #include容易引起的重复导入问题。
  @class只是告诉编译器,后边遇到的这名称是类名,至于这个类是如何实现的暂时不考虑,用来解决线程锁死的问题。
  就相当于一个军队遇见了另外一个军对,打不打不无所谓,然后两军衣服不一样。纵横过去。

10、nonatomic和atomic的区别?atomic是绝对的线程安全么?为什么?如果不是,那应该如何实现?
  nonatomic和atomic用来决定编译器生成的getter和setter操作是否为原子。
  atomic不是绝对的线程安全。因为什么呢,因为atomic的本意是指属性的存取方法是线程安全的,不是保证整个对象是线程安全的。

如果不是,那应该如何实现?传送门

是不是很枯燥无味?嗯,你被辞职了嘛?工作找好了嘛?


11、Objective-C与C、C+++之间的联系和区别?
  OC与C的区别:OC中兼容C两者可以混合编程。OC是面向对象的,有类,对象的概念,C却木有。
  C是面向过程的语言。
  OC与C++的区别:
  1、继承。OC不可以多重继承,C++却可以
  2、函数调用。OC需要通过消息传递机制调用函数,C++却可以直接调用
  3、定型。OC是动态定型。C++是等着你去找他。是静态类型。
  4、接口。OC采用的是protocol协议。C++采用虚函数的形式。
  5、方法重载。OC不允许有同一个类中出现两个相同的方法名。C++中允许两个方法名相同。
  好吧。其实我也不知道,我百度的。 -_-!

12、UICollectionView自定义layout如何实现?
  额。这个问题,不知道怎么说好。如何自定义。不就是继承UICollectionViewFlowLayout类实现字节想要实现的东西吗?

13、进程和线程的区别?同步异步的区别?并行和并发的区别?
  这个问题怎么说呢,一步一步说
  进程和线程的区别:进程是资源分配和调度的一个独立单元。就相当于是公交车调度站。一个进程里边可以有多个线程,
一个进程里边至少有一个线程,就相当于一个公交车调度站里最少有一辆公交车,也可以有多个公交车。
  同步异步的区别:同步是进程之间的关系不是相互排斥临界资源的关系,而是相互依赖的关系。
  异步是和同步相互对立的,同步是顺序执行,而异步是相互独立的。
  并行:并行是同是发生多个并发事件,具有并发的含义,但并发不一定并行。
这个并行并发我也不太懂,应该是这样的。不对的话请自行百度。

14、线程间通信?
  比如说,一个线程传递数据给另一个线程。
        一个线程执行完特定的任务后,转到另一个线程继续执行。
  比如最常见的sd图片加载。(脑补画面)好了,完成。


15、GCD的一些常用的函数?(group,barrier,信号量,线程同步)
  下边有传送门,我常用的就是定时器,回到主线程,开一个分线程。搞一个runLoop。等等

出现吧,皮卡丘

16、如何访问并修改一个类的私有属性?
  1、通过KVC访问并修改。
  2、通过runtime访问并修改。

通过kvc访问并修改 通过runtime访问并修改


17、数据持久化的几个方案?
  1、plist文件 2、preference 3、归档 4、SQLite3(fmdb) 5、CoreData 

18、说一下AppDelegate的几个方法?从后台到前台调用了哪些方法?第一次启动调用了哪些方法?从前台到后台调用了哪些方法?
  这个问题没什么说的,全靠自己平时积累。其实这个问题问了无非就是考验一下你有没有看过appDelegate而已。有没有做过启动页,有没有处理过其他事件。
  自行回去学习。

19、NSCache优于NSDictionary的几点?
 1、 NSCache是线程安全的。
 2、当内存不足时NSCach会自动释放内存。
 3、NSCache可以指定缓存的限额,当缓存超出限额自动释放内存

20、知不知道Designated Initializer?使用它的时候有什么需要注意的问题?
这个问题可能好多人都不知道,也不理解他是啥意思,其实这个就是(指定初始化器)如果不懂,不知道,不清楚。
而你又很想知道是撒,请读下文。

耐心读完吧。亲


21、实现description方法能取到什么效果?
  布吉岛。知道的请留言告知。谢谢。我理解的是用NSLog输出的时候会调用description的方法。具体能得到什么效果,自己试验一下吧。
22、OC使用什么机制管理对象内存?
  这题应该考的是OC的内存管理,ARC和MRC。经过排查我看到了说是通过retainCount来管理的。布吉岛,我感觉这两点答上来应该不会差。

OK!!!这个初级面试题基本就是这样。后续会有中级,高级的。如果有不同意见,或见解,请提出!共同进步。谢谢!

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

推荐阅读更多精彩内容

  • 最全的iOS面试题及答案 iOS面试小贴士 ———————————————回答好下面的足够了-----------...
    zweic阅读 2,699评论 0 73
  • 1.写一个NSString类的实现 +(id)initWithCString:(c*****t char *)nu...
    韩七夏阅读 3,763评论 2 37
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,096评论 1 32
  • 感赏彩羽能够坚持到校学习。 感赏彩羽能够认真完成老师布置的作业,写的字越来越端正。 感赏彩祺能够天天坚持读英语。 ...
    无心言欢阅读 171评论 0 0
  • 最近感觉发现了一个秘密,有一群生活在安排中的人,比如让你看钢琴,然后真的只是看钢琴。 然后工作在这群人眼里也就是件...
    梦行动物阅读 344评论 0 0