码迷,mamicode.com
首页 > 移动开发 > 详细

iOS面试题积累

时间:2015-11-05 23:58:20      阅读:389      评论:0      收藏:0      [点我收藏+]

标签:

1. 属性readwrite,readonly,assign,retain,weak,strong,copy,nonatomic ,atomic的作用,使用情况及注意点

(1).readwrite  特性:可读可写; 情况:生成getter、setter方法;【注】:若没有成员变量会直接创建;

(2).readonly  特性:只读,不会生成setter方法;情况:不让属性在类外变化;【注】:只会生成getter方法;

(3).assign  特性:赋值,setter方法将传入的参数赋值给实例变量;情况:仅仅设置变量;【注】:在MRC模式下assign修饰的(指针)对象释放后,改指针仍指向原来的地方。而在ARC模式下功能与之类似的weak指向的对象释放后,改指针会自动置为nil;

(4).retain  特性:持有,setter方法 将传入参数先保留,再赋值;情况:传入参数的retaincount会+1; 【注】:原则上在ARC模式下是assign与retain不能使用的,但是编译器放宽了要求(写了也没关系),ARC模式中与retain功能几乎相同的属性修饰是strong(强引用);

(5).copy  特性:赋值,setter方法将传入对象复制一份,情况:一般只用于修饰NSString;

(6).nonatomic  特性:非原子操作,决定编译器生成的setter,getter是否是原子操作 ;情况:提高效率;

(7).atomic  特性:原子操作,提供多线程安全,防止线程在未完成时被其它线程读取(会造成数据错误);情况:不能被打断的操作 【注】:一般使用nonatomic;

2.NSInteger 不是NSNumber/NSObject的子类,是基本数据类型(是int/long的别名),它会根据系统是32位还是64位来决定本身是int还是long。

3.通知与协议的区别

协议可以按生活中的理解看成一对多,但是它有控制链的关系,通知是没有的。boss的工作代理是不通的员工,各个员工为boss工作,boss要给各个员工发工资;是不能把Cat的工资发给Dog,(就不是一类嘛)

通知可以一对多,一条消息发给多个接收者,比如财务通知:公司员工请于XX号XX点到XX领取薪资条。通知只关心发出通知。

iOS面试题积累

标签:

原文地址:http://www.cnblogs.com/LiRenee/p/4941103.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!