iOS面试题积累

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领取薪资条。通知只关心发出通知。

转载于:https://www.cnblogs.com/LiRenee/p/4941103.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值