2018年4月13号
上午:
一个公司的面试,本来以为可以面试通过的。回顾一下,面试中还是有一些缺陷的。
1,app的流畅度怎么处理?
2,手环数据的并发上传处理?
3,职业规划
4,手势单击和双击的触发。
下午:
1,类和类别的声明的相同的方法,执行顺序。
(1.执行顺序是先执行子类中分类中的方法)
2,关于runtime的知识点。
(1,动态创建一个类:KVO的底层实现)
(2,动态的为某个类添加属性和方法,修改属性和方法)
(3,遍历一个类的所有成员的变量(属性),所有方法)例子:修改 UIDatePickerView 的线条消失
3,核心动画。
4,断点续传功能的实现。
5,声音的降噪处理。
6,FMDB的多线程的处理。以及事务(因为项目中基本没有使用FMDB,时间长了忘了)。
(1,事务是为了处理大量数据写入磁盘的操作,即打开一次数据库,将所有的数据写入数据库)
(2,事务在插入一个数据到多个数据库时,如果插入一个数据库失败,即不会往其他的数据库插入,可以回滚)
7,关于assign,weak,strong,copy,automic,nonatomic 的使用。程序会不会造成循环引用的问题。
(1,代理和block的使用)
(2,strong和copy 当不可变的对象时,没有区别,只是一次浅拷贝,当可变对象的时候,copy是对对象的一次深拷贝,即分配一块内存空间。strong是随着对象的改变而改变。)
8,内存管理,引用计数+1的方式。
9,autoreleasepool 的作用
(1,初始化执行main函数的时候,自动创建内存释放池:创建的对象时引用计数加1,自动在对象不再被对象引用的时候,使计数-1操作,即【obj release】)(2,循环遍历比较大的数组或者对象时生成临时对象的时候,引用autoreleasepool可以释放临时生成的对象,避免内存暴涨)。
10,KVC和KVO的底层实现
(1,KVC 是通过属性的set方法去赋值,查找_,查找子类的属性,有相应的key值既可以赋值)
(2,KVO的实现,即生成监听类的临时子类,通过监听属性的set方法,动态通知属性的变化)
让自己变成更好的自己。
网友评论