最近部门结构改变,刚刚学习一年的菜鸟,出去面试了一圈,真真是被鄙视与打击。自学的没有深入学习内部实现原理,主要是以完成项目,学习项目中的知识点为主。经过一周的面试,大致了解了这个行业针对于IOS开发工程师的要求,现在总结如下:

1. 数据结构知识

大部分稍微有点规模或者是有经验的面试官开始会先问数据结构上的算法,手写代码(以下这些都是真实遇到的,也是最常遇到的)。

二叉树建立,前序、中序、后序遍历的递归和非递归实现,求深度,反转二叉树。

双向链表的查找数据,判断是否是单向交叉链表。

快速排序,奇偶数分开算法(要求空间复杂度O(1),时间复杂度O(n))

2.IOS中的技术知识

imageview的contentMode:http://blog.sina.com.cn/s/blog_6558840b0101dpe2.html

bounds与frame的区别:

ios9特性

保证线程安全的几种方式

线程锁的实现方式

coredata升级

coredata关系建立设置

具体到函数怎么写

ios WWDC大会

特定区域两个点击,屏蔽实现

循环引用,block两种方式都会造成循环引用吗

gcd限制线程数

kvo用完需要删除监听,否则会造成什么问题

分类的优点

runtime机制理解

sdwebimage底层实现

生命周期排序:

ViewController的生命周期中各方法执行流程如下:

init—>loadView—>viewDidLoad—>viewWillApper—>viewDidApper—>viewWillDisapper—>viewDidDisapper—>viewWillUnload->viewDidUnload—>dealloc

可以后台运行的:音乐,地理位置,网络电话

启动另外app方式:

可以在 Info.plist 文件中注册程序能 handle 的自定义 URL scheme,当具有这个 scheme 的 URL 被点开时,程序会被系统启动,可以通过 app delegate 的 application:willFinishLaunchingWithOptions: API 获取原始 url。

服务器常用的返回错误码:200 - 服务器成功返回网页   404 - 请求的网页不存在   503 - 服务不可用  

友盟登陆返回的接口:http://dev.umeng.com/social/ios/detail-share#11

KVC底层实现:

weak,strong的实现

block内存管理

sdWebImage内部机制   

arc的内部实现

viewController的生命周期

KVO怎么实现的

KVC内部机制

runTime

notification内部机制

IOS程序运行的空间:堆、栈、全局区、文字常量区、程序代码区



mvc mvvm

nsnotification原理

判断是否是交叉链表

http,tcp协议

自动布局的比较

github上作品