2019年iOS面试题

技术基础

1、我们说的Objective-C是动态运行时语言是什么意思?
2、讲一下MVC和MVVM,MVP?
3、为什么代理要用weak?代理的delegate和dataSource有什么区别?block和代理的区别?
4、属性的实质是什么?包括哪几个部分?属性默认的关键字都有哪些?@dynamic关键字和@synthesize关键字是用来做什么的?
5、属性的默认关键字是什么?
6、NSString为什么要用copy关键字,如果用strong会有什么问题?(注意:这里没有说用strong就一定不行。使用copy和strong是看情况而定的)
7、如何令自己所写的对象具有拷贝功能?
8、简述kvo、kvc、Delegate他们之间的区别?
9、include与#import的区别?#import与@class的区别?
10、nonatomic和atomic的区别?atomic是绝对的线程安全么?为什么?如果不是,那应该如何实现?
11、Objective-C与C、C+++之间的联系和区别?
12、UICollectionView自定义layout如何实现?
13、进程和线程的区别?同步异步的区别?并行和并发的区别?
14、线程间通信?
15、GCD的一些常用的函数?(group,barrier,信号量,线程同步)
16、如何访问并修改一个类的私有属性?
17、数据持久化的几个方案(fmdb用没用过)
18、说一下AppDelegate的几个方法?从后台到前台调用了哪些方法?第一次启动调用了哪些方法?从前台到后台调用了哪些方法?
19、NSCache优于NSDictionary的几点?
20、知不知道Designated Initializer?使用它的时候有什么需要注意的问题?
21、实现description方法能取到什么效果?
22、objc使用什么机制管理对象内存?

中级Block

1、block的实质是什么?一共有几种block?都是什么情况下生成的?
2、使用系统的某些block api,是否考虑引用循环问题?
3、谈谈block的理解?并写出一个使用block执行UIVew动画?

Runtime

1、runtime如何实现weak属性?
2、runtime如何通过selector找到对应的IMP地址?
3、能否向编译后得到的类中增加实例变量?能否向运行时创建的类中添加实例变量?为什么?
4、runtime如何实现weak变量的自动置nil?
5、在开发中如何使用runtime?什么应用场景?

类结构

1、isa指针?(对象的isa,类对象的isa,元类的isa都要说)
2、类方法和实例方法有什么区别?
3、介绍一下分类,能用分类做什么?内部是如何实现的?它为什么会覆盖掉原来的方法?
4、运行时能增加成员变量么?能增加属性么?如果能,如何增加?如果不能,为什么?
5、objc中向一个nil对象发送消息将会发生什么?(返回值是对象,是标量,结构体)

高级

1、UITableview的优化方法(缓存高度,异步绘制,减少层级,hide,避免离屏渲染)
2、有没有用过运行时,用它都能做什么?(交换方法,创建类,给新创建的类增加方法,改变isa指针)
3、看过哪些第三方框架的源码?都是如何实现的?(如果没有,问一下多图下载的设计)
4、SDWebImage的缓存策略?
5、AFN为什么添加一条常驻线程?
6、KVO的使用?实现原理?(为什么要创建子类来实现)
7、KVC的使用?实现原理?(KVC拿到key以后,是如何赋值的?知不知道集合操作符,能不能访问私有属性,能不能直接访问_ivar)

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

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,076评论 1 32
  • 1.设计模式是什么? 你知道哪些设计模式,并简要叙述?设计模式是一种编码经验,就是用比较成熟的逻辑去处理某一种类型...
    龍飝阅读 2,126评论 0 12
  • 设计模式是什么? 你知道哪些设计模式,并简要叙述? 设计模式是一种编码经验,就是用比较成熟的逻辑去处理某一种类型的...
    卑微的戏子阅读 618评论 0 1
  • 1.设计模式是什么? 你知道哪些设计模式,并简要叙述? 设计模式是一种编码经验,就是用比较成熟的逻辑去处理某一种类...
    司马DE晴空阅读 1,271评论 0 7
  • 我的女儿JJ,妈妈想要告诉你我们第一次分别的故事,而那永远的第一次也开启了我们往后的种种分离。妈妈告诉你,你是多么...
    大夏夏阅读 592评论 0 0