面试

只有每天不断的学习才成证明你正常的活着!

                                                     --致正在奋斗路上的你

 

1.多线程,特别是NSOperation和GCD的内部原理

2.运行时机制的原理和应用场景

3.SDWebImage的原理。实现机制

4.如何解决tableview卡的问题

tablebview滑动卡的问题主要因为从缓存中或者从本地读取图片给UIImage的时候消耗的时间

5.block和代理,通知的区别,blcok的用法需要注意些什么

a.block是oc中另外一种对象和对象的通信方式,是一对一的关系,类似于delegate,而通知是一对多的关系

b.KVO是cocoa的一个重要机制,她提供了观察某一属性的方法,极大的简化了代码,这种观察-被观察者模型适用于这样的情况,比方说根据A的某个属性变化,B中的某个属性也作出相应变化,类似notification,通知需要发送一个通知的对象,一般是通知中心,来通知观察者,而kvo可直接通知到观察对象

c.通知需要一个通知中心,优点:通知的接受者和发送方都不需要知道对方,可以指定接受通知的具体方法,缺点:相比KVO代码多点,移除前必须删除监听者

d.优点:支持她的类具有详尽和具体信息 缺点:该类必须支持委托。某一时间只能有一个委托链接到某一对象

 

6.strong,weak,assgn,copy,nomatic等的区别

7.设计模式家,MVC,单利,工厂,代理等的应用场景 

8,单利的写法,在单利中创建数组应该注意什么

+(instancetype)shareModel

{

    static ShareModel *share;

     static dispatch_once_t onceToken;

    dispatch_once(&onceToken, ^{

           share = [[ShareModel alloc]init];

    });

    return share;

}

 

9.NSString的用copy和strong的区别

http://www.cocoachina.com/ios/20150512/11805.html

10.ARC原理(自动加上retain/relese/autorelse)

 http://www.oschina.net/translate/objc-automatic-reference-counting-in-xcode-explained(参考)

11.tableview的重用机制

为啥需要这种机制,机制原理是啥?

a.数据之多,不可能每个数据都得一个cell,这样就造成内存负担了,只需要创建cell上显示的最大的cell数循环利用

b.系统默认有一个可变的数组来保存当前可见的cell,另一个可变的数组来保存可重复利用的cell

http://www.jianshu.com/p/b2bba60c0976(参照)

 12.深复制和浅复制

浅拷贝就是对内存地址的复制,让目标对象和源对象指向同一片内存空间

深拷贝是指对对象的具体内容,而内存地址是自主分配的,复制之后两个虽然存的值是相通的,但是内存地址不一样,两个对象也互不干扰

https://www.zybuluo.com/MicroCai/note/50592

 

posted @ 2016-02-20 15:33  哈哈你叫  阅读(146)  评论(0编辑  收藏  举报