@property

来源:互联网 发布:剑网3重制版继承数据不 编辑:程序博客网 时间:2024/05/16 08:20
@property(retain) ==@property(atomic, retain)
//在setter函数中对参数retain了之后再将参数赋值给变量,所以在dealloc函数中需对变量release。
//default为原子操作(在执行set/get时加锁,确保多线程安全,但时执行时间较长。则默认是两个访问方法都为原子型事务访问。)

@property(nonatomic, retain)
//设置为非原子操作,适合单线程的程序

@property int num;
//默认为原子操作,一般简单数据类型不需要retain
==============================
其中参数主要分为三类:
  读写属性: (readwrite/readonly)  setter语意:(assign/retain/copy)  原子性:(atomicity/nonatomic)
  各参数意义如下:  readwrite  产生setter\getter方法
  readonly  只产生简单的getter,没有setter。
  assign  默认类型,setter方法直接赋值,而不进行retain操作
  retain  setter方法,1、如果变量!==参数,对变量进行release旧值,再retain新值。
   2、先对参数retain,再对变量release,在对变量赋值。
 
  copy  setter方法进行Copy操作,与retain一样
  nonatomic  禁止多线程,变量保护,提高性能
原创粉丝点击