iOS面试题,基础→中级→高级面试进价=总会是你需要的!

iOS基础面试题部分

1. 为什么说Objective-C是一门动态的语言?
2. 讲一下MVC和MVVM,MVP?
3. 为什么代理要用weak?代理的delegate和dataSource有什么区别?block和代理的区别?
4. 属性的实质是什么?包括哪几个部分?
5. 属性默认的关键字都有哪些?@dynamic关键字和@synthesize关键字是用来做什么的?
6. NSString为什么要用copy关键字,如果用strong会有什么问题?(注意:这里没有说用strong就一定不行。使用copy和strong是看情况而定的)
7. 如何令自己所写的对象具有拷贝功能?
8. 可变集合类 和 不可变集合类的 copy 和 mutablecopy有什么区别?如果是集合是内容复制的话,集合里面的元素也是内容复制么?
9. 为什么IBOutlet修饰的UIView也适用weak关键字?
10. nonatomic和atomic的区别?atomic是绝对的线程安全么?为什么?如果不是,那应该如何实现?
11. UICollectionView自定义layout如何实现?
12. 用StoryBoard开发界面有什么弊端?如何避免?
13. 进程和线程的区别?同步异步的区别?并行和并发的区别?
14. 线程间通信?
15. GCD的一些常用的函数?(group,barrier,信号量,线程同步)
16. 如何使用队列来避免资源抢夺?
17. 数据持久化的几个方案(fmdb用没用过)
18. 说一下AppDelegate的几个方法?从后台到前台调用了哪些方法?第一次启动调用了哪些方法?从前台到后台调用了哪些方法?
19. NSCache优于NSDictionary的几点?
20. 知不知道Designated Initializer?使用它的时候有什么需要注意的问题?
21. 实现description方法能取到什么效果?
22. objc使用什么机制管理对象内存?

详细面试题:此文尾处自己取!

不用担心答案文章尾处,自行获取!

iOS中级面试题部分

Block

1. block的实质是什么?一共有几种block?都是什么情况下生成的?
2. 为什么在默认情况下无法修改被block捕获的变量? __block都做了什么?
3. 模拟一下循环引用的一个情况?block实现界面反向传值如何实现?

Runtime

1.Category 的实现原理?
2.isa指针的理解,对象的isa指针指向哪里?isa指针有哪两种类型?
3.Objective-C 如何实现多重继承?
4.runtime 如何实现 weak 属性?
5.讲一下 OC 的消息机制
6.runtime具体应用
7.runtime如何通过selector找到对应的IMP地址?
8.简述下Objective-C中调用方法的过程
9.load和initialize的区别
10.怎么理解Objective-C是动态运行时语言。

类结构

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

多线程

1.进程与线程
2.什么是多线程?
3.多线程的优点和缺点
4.多线程的 并行 和 并发 有什么区别?
5.iOS中实现多线程的几种方案,各自有什么特点?
6.多个网络请求完成后执行下一步
7.多个网络请求顺序执行后执行下一步
8.异步操作两组数据时, 执行完第一组之后, 才能执行第二组
9.多线程中的死锁?
10.GCD执行原理?

详细面试题:此文尾处自己取!

iOS高级面试题部分
底层

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

项目架构

1.MVC、MVP、MVVM模式
2.关于RAC你有怎样运用到解决不同API依赖关系
3.@weakify和我们宏定义的WeakSelf有什么区别?
*4.微服务架构设想

性能优化

1.造成tableView卡顿的原因有哪些?
2.如何提升 tableview 的流畅度?
3.APP启动时间应从哪些方面优化?
4.如何降低APP包的大小
5.如何检测离屏渲染与优化
6.日常如何检查内存泄露?

如何学习?

对于程序员来说,要学习的知识内容、技术有太多太多,要想不被环境淘汰就只有不断提升自己,从来都是我们去适应环境,而不是环境来适应我们!

这里附上几十套字节跳动,京东,小米,腾讯、头条、阿里、美团等公司19年的面试题。把技术点整理成了PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节。

iOS交流裙:1001906160,详细整理在群文件可以见;

——点击加入:iOS技术分享

点击加入,可自己下载

小编文章面试请观看合集

希望真心能够帮助到大家提升技术!技术进阶之路很漫长,一起共勉吧~

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

推荐阅读更多精彩内容