首页 > 代码库 > objetive-C中属性变量和成员变量

objetive-C中属性变量和成员变量

   

  属性变量 @property和@synthesize可以自动生成某个类成员变量的存取方法。

    readwrite:这个属性是默认的情况,会自动生成存取器

    assign:这个属性一般用来处理基础类型,比如int、float等等。

    copy:指定应该使用对象的副本(深度复制),前一个值发送一条release消息。

       基本上像retain,但是没有增加引用计数,是分配一块新的内存来放置它。

       copy是创建一个新对象,retain是创建一个指针,引用对象计数加1。copy

       建立一个索引计数为1的对象。然后释放旧的对象,copy是创建一个新对象,

       retain是创建一个指针,引用对象加1。

    readonly:将只生成getter方法而不生成setter方法。

    readwrite:默认属性,将生成不带额外参数的getter和setter方法(setter只有一个参数)

    atomic:对于对象的默认属性,就是setter/getter生成的方法是一个原子操作。如果多个

        线程同时调用setter的话,不会出现某一个线程执行setter全部语句之前,另一个

        线程开始执行setter的情况,相当于方法头尾加了锁一样。

    nonatomic:不保证setter/getter的原子性,多线程情况下数据可能会有问题。

        nonatomic,非原子性访问,不加同步,多线程并发访问会提高性能。先释放原先

        变量,再将新变量 retain然后赋值;

  成员变量 是该类的私有变量,只对该类可见。

objetive-C中属性变量和成员变量