面试关于@property问题

1、关于@property

a)、读写性修饰符:readwrite和readonly

1、readwrite :系统会自动给我们生成setter和getter方法。(可读可写)

2、 readonly:系统只会创建getter方法,setter方法不会去创建。(只能读,不能写)

b)、setter,其中setter相关的修饰符有:assign、retain、copy

1、assign表示基本类型,就是NSInterger、CGfloat....,assign修饰符不会牵扯到内存。用assign修饰对象,Xcode会直接报错。

2、retain针对对象进行内存的管理。如果对象用retain进行修饰,setter方法会将旧的对象release掉,在对新对象进行一次赋值和retain一次,也就是计数器+1.

3、copy表示复制内容。一般针对NSString操作

系统默认属性是assign,retain是指针的复制,copy是内容上的复制。

c)原子性修饰符:atomic,nonatomic

1、atomic:表示线程安全的。系统默认。

2、nonatomic:表示非线程安全的。使用这个属性性能会提高些。

d)、getter和setter

例如:@property (getter=getName, setter=setName)object *obj;

这样修饰就不会执行系统的getter和setter方法了,会执行自定义的getName和setName方法。


@property可以有多个修饰符,a)、b)、c)中只能每种出现一个,d)中的可以全部出现。



Xcode4.2(iOS sdk4.3和以下版本)和以前的版本用retain和assign
Xcode4.3(iOS 5和以上版本)或之后有了ARC用strong和weak

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值