1、代理和block的区别:
代理优势:代理占用系统资源小,只是存储了一个对象指针,有三个方法以上的话建议使用代理 ,可以获取上下文进行操作
缺点:代码量多
block:
优势:代码块简洁,便于阅读与维护,可做参数,返回值传递
缺点:容易引起循环引用,引用了外部变量的时候是将block从全局区拷贝到堆区的(占用系统资源比代理多些)
2、_ _ block 后为什么能被修改了
因为_ _block之后把变量从栈区拷贝到堆了 http://www.jianshu.com/p/a1c8532e172d
3、 userdefault可以存储的类型
nsnumber,nsstring,nsarray,nsdictionary,nsdate,nsdata,bool
(对象需要进行进行归档然后存储 http://blog.csdn.net/kongu/article/details/46968671)
4、代理用weak还是assign修饰 区别是什么
用weak修饰代理
mrc中用assign修饰然后出现了arc就用weak了 因为assign修饰代理之后代理销毁后指针不会自动置位nil
weak修饰代理 代理销毁后 指针会自动置为nil
assign 一般用来修饰基本数据类型
weak和assign都不会是RC+1
5、深复制和浅复制http://www.jianshu.com/writer#/notebooks/19380513
6、消息机制 : 对象方法是在类对象的方法列表里面 类方法是在元类的方法列表里面的
1、通过isa指针进行去对应的类中进行查找
2、根据方法名注册方法编号
3、根据方法编号进行查找对应的方法(因为操作编号比操作字符串跟家快捷方便)