@property的常用属性关键字有:

  • strong:赋值时,调用对象的retain方法,使其引用计数加1,可以指向其他引用类型,强指针;
  • weak:不增加对象的引用计数,也不持有对象,对象释放时,自动设置为nil;
  • copy:创建一个引用计数为1的对象,基本数据类型浅拷贝,可变类型深拷贝,想要数据在拷贝后不发生改变则使用copy;
  • assign:修饰基本数据类型(int,float,double),枚举,结构体等非OC对象类型;
  • atomic:原子操作,提供线程安全,默认属性,会耗费系统资源;
  • nonatomic:非原子操作,不提供线程安全,效率更高
  • readonly:只有get
  • readwrite:既有set也有get
  • getter=<name>, setter=<name>方法名
  • nonnull, null_resettable, nullable, null_unspecified兼容swift