@property中,retain,assign,copy的差别

1.retain:先release旧值,再retain新值,最终指向同一块内存区域。

2.assign:直接赋值,不考虑内存管理。

3.copy:先release旧值,再copy新值,copy的本质为复制该内存所存储的内容,重新创建一个对象赋给其相同的内容,很明显,在copy这个过程中也发生了一次retain,不过这是个全新的对象。最终指向了不同的内存区域,但其内容一样。

4.从retain assign copy的特点中我们可以看出:

            retain一般适用于OC中的对象

            assign一般适用于非OC对象,如int等普通类型

            copy一般适用于NSString等不可变的对象,因为是重新创建了对象,并且内容不变,因此不用担心后面的操作会对该属性的值产生影响。

 

posted @ 2015-10-23 10:37  灿锋的博客  阅读(147)  评论(0编辑  收藏  举报