登录 立即注册
金钱:

Code4App-iOS开发-iOS 开源代码库-iOS代码实例搜索-iOS特效示例-iOS代码例子下载-Code4App.com

过招多家大厂提炼的iOS面试心经 [复制链接]

2019-3-21 19:57
2899926939 阅读:474 评论:0 赞:2
Tag:  

2018年,整个资本市场风起云涌,大环境下,互联网更是风声鹤唳,大多数公司面临着裁员,结构重构,他们收紧资本,为自己取暖。在漫长的寒冬下,互联网人只有自己修炼内功,才能在寒风中屹立不倒。

作为一名iOS开发者,要时时刻刻保持学习的冲劲,新的知识每年都是海量增长,要学的东西真的太多太多。很多公司收紧资本,所以,对于找人这块,更是慎之又慎,如果不是实力过硬,很难找到一份称心的工作。

所以,学好iOS很重要,大公司对于开发者的要求也越来越偏向于底层。一个有扎实内功的开发者,才会受到公司的青睐。

学好iOS的底层,无怪乎有几大块的知识点需要掌握,也必须掌握:

OC基础
OC对象,底层的结构是怎样的,类与类别,category为什么不能添加属性? 底层的实现原理,如果类别重写了类中的方法,调用顺序是怎样的?OC语言的动态特性,静态编译与动态类型识别,此处阿里曾考过?这些平时不注意的点有没有注意过?

OC的属性,assign,copy,strong,retain,weak.这些属性的应用场景,以及经常考的可变字符串为什么不能用copy修饰?不可变字符串为什么不能用strong修饰,修饰了会怎样?代理如果用assign会怎样?

OC的内存管理机制,从MRC到ARC内存管理做了什么?autoreleasePool 什么情况下会用,autoreleasePool 的实现原理?引用计数保存在哪里?了解其数据结构吗?

各种原理性问题,如dictionary的实现原理,KVC的实现原理以及为什么要派生出子类,KVO的实现原理,KVO为什么要移除观察者,timer会造成循环引用吗?怎么解决?weak的实现原理?

block的实现原理,_block的作用以及底层实现原理,block的循环引用问题,下划线修饰的变量会造成循环引用吗?怎么处理?masonry链式编程怎么实现的?什么情况下不用__weak?(Masonry、AFNetWorking、动画等)

平时有用到runtime吗?runtime干嘛的,方法交换。runloop的理解。

消息发送机制,消息转发的三步补救措施?objc向一个对象发送消息时,发送消息的整个过程?objc中向一个nil对象发送消息将会发生什么?这个题目很重要,一题可能会否定一个人。

一个对象的本质,一个对象的内存布局,类对象与元类对象?

深拷贝浅拷贝

iOS系统
main()之前的过程有哪些?

AF实现原理?SD实现原理?

说一下UITableViewCell的卡顿你是怎么优化的?

设计一套缓存策略。

用过哪些锁?哪些锁的性能比较高?

iOS启动优化和列表优化点

iOS与h5的交互

如何增加一条常驻线程?

说一下响应链?

动画分为哪几类?如何终结一个动画?什么是转场动画?什么情况下动画会失败?

有没有用过GCD?GCD的group会线程阻塞?下载一张图片,下载过程中UIImageView突然取消会怎样?NsOperation与GCD的不用应用场景

CoreText实现富文本?

ViewController的生命周期?

设计一个检测主线和卡顿的方案。

iOS应用安全,如何防止反编译?iOS平时的加密措施,密码一般保存在哪里?

感觉项目中哪些地方做的比较好的?有哪些优化点值得推荐的?

项目的整体架构是怎样的,项目层级如何划分?有什么熟悉的架构?项目架构如何做到细分?

平时如何采集性能数据的?

网络请求有没有做到深度优化?

iOS网络请求
http与HTTPS,每次请求都要建立证书吗?

get与post区别,post请求能否用拼接参数的形式?get一定要拼接参数吗?两个最本质的区别?

APNS整个请求过程

TCP与UDP的应用区别

socket的应用场景

本地大量频繁的数据怎么处理?

数据库
平时用的数据库有哪几种?如何联表查询,数据如何保证读取安全?
数据结构与算法
算法建议系统的看,有本书值得推荐《剑指offer》,可以系统的学习。毕竟数据结构与算法是基础,打好基础才能万丈大楼平地起!

二分查找法

反转链表

两组有序数据,查找第k个数

脚本
固有的iOS知识有时候并不能满足开发需求了,有时候需要脚本的编写。推荐Python,因为Mac本身就支持Python。能够利用Python处理一些事情,越来越成为一个程序员的基本要求。

自动化打包也越来越倾向于用脚本实现

能够用脚本加载一些资源文件

在程序加载之前能够用脚本处理一些事情

许多第三方包依赖于脚本

许多大公司,XCode只是一个代码编写工具,代码的编译运行交给脚本处理,能够用脚本处理许多事情

进阶iOS当然还有许多路要走,不过,千里之行始于足下,吾将上下而求索!

喜欢的话点赞+1或关注多多支持哦 小编会经常给小伙伴们更新关于IOS当下热点。

另外小编给大家推荐一个iOS技术交流群:458839238!群内提供数据结构与算法、底层进阶、swift、逆向、整合面试题等免费资料
附上一份收集的各大厂面试题(附答案) ! 群文件直接获取
各大厂面试题

分享到:
我来说两句
facelist
您需要登录后才可以评论 登录 | 立即注册
所有评论(0)
关闭

每日头条

通过邮件订阅最新 Code4App 信息
上一条 /4 下一条
联系我们
关闭
合作电话:
13802416937
Email:
435399051@qq.com
商务市场合作/投稿
问题反馈及帮助
联系我们

广告投放| 广东互联网违法和不良信息举报中心|中国互联网举报中心|Github|申请友链|手机版|Code4App ( 粤ICP备15117877号-1 )

返回顶部