@property

@property做了什么


@property :
在类的接口中、分类接口、协议中声明属性。格式:@property (特性) 属性类型 属性名称。
它会设置与属性关联的setter/getter方法,但是无法完成真正的方法定义。
@synthesize:
在实现文件中完成属性setter/getter方法的定义、实例变量的定义,并在setter/getter方法中使用这些实例变量。
老版本中(LLVM编译器4.2之前),@property要和@synthesize配合使用才能为我们完成以上工作。而在现在,只需要使用@property一个关键字就可完成上面的工作。

@property的可选特性


原子性

  • nonatomic,不会生成多线程同步的相关代码。导致,设置的值取出后不一定相同。
  • atomic,不会出现上面的情况。

setter语义(前一个非ARC,后一个ARC)

  • 只有OC对象的属性才需要内存管理,C语言的基本类型,不需要内存管理。
  • retain/strong,赋值时,输入的值会被发生一条保留消息,旧值会被发送一条释放消息。
  • assign/weak,两着类似,但是weak时,引用对象释放后,值会变为nil。
  • copy,赋值时,旧值会被发送一条释放消息,新值会是传入值的副本,和strong的区别是,strong会和传入值使用同一块内存。
  • getter=getterName,setter=setterName.设置存取方法的名称。

读写控制

  • read-only,不会生成setter方法,控制写权限
  • readwrite,可读可写。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值