ios property declare

格式:@property (attribute [, attribute2, ...]) type name;

读写性:

  1. readwrite 可读可写,默认属性
  2. readonly 只读,该属性只生成getter方法而不生成setter方法


语义:

  1. strong 强引用关系,拥有对象
  2. weak 弱引用关系,如果目标对象被销毁,该引用被设为nil
  3. copy 旧对象调用release,新对象调用copy,然后赋值
  4. assign 只是获得了对象,并没有调用retain,也不会调用release,默认属性
  5. retain 就对象调用release,新对象调用retain,然后赋值

设为retain时,访问器set和get都会让对象计数器+1。get方法同时做了autorelease,当拥有者销毁的时候,get执行了m次,m个自动释放池也会销毁,对象的引用计数会m次自动-1,在dealloc中还要释放对象,则让对象与自己完全无关,等于说把控制权交了出去。


原子性:

  1. nonatomic setter方法不是原子性的,可以提升性能。默认是原子性的,但没有提供atomic关键字
posted @ 2012-06-10 21:25  zhoulong  阅读(177)  评论(0编辑  收藏  举报