举个例子: html
NSString *houseOfMM = [[NSString alloc] initWithString:'装梵几的三室两厅']; ios
上面一段代码会执行如下两个动做:此时会在堆上从新开辟一段内存存放@'装梵几的三室两厅',好比0X1122,内容为@'装梵几的三室两厅',同时会在栈上为myHouse分配空间,好比地址:0XAACC,内容为0X1122,所以retainCount增长1供myHouse来管理0X1122这段内存.(两套@'装梵几的三室两厅',条件好,分居了,房子一人一套,因此钥匙一人一把。) app
何时用assign,固然是破房子,简装的房子拉
基础类型(简单类型,原子类型):NSInteger,CGPoint,CGFloat,C数据类型(int,float,double,char等)
何时用copy
含有可深拷贝的mutable子类的类,如NSArray,NSSet,NSDictionary,NSData的,NSCharacterSet,NSIndexSet,NSString
(可深度拷贝的房子)
可是NSMutableArray这样的不能够,Mutable的不能用copy,否则初始化会有问题。切记
何时用retain
其余NSObject和其子类对象好嘛 (大多数)
ARC中的strong至关于非ARC中的retain,ARC来了之后多搞一把钥匙就strong了啦。 spa
抄袭:http://wenku.baidu.com/view/ab6ed804bed5b9f3f90f1c7d.html .net
有空的话翻译一下好嘛: 翻译
http://clang.llvm.org/docs/AutomaticReferenceCounting.html orm
https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/ObjectiveC/Chapters/ocProperties.html htm
http://developer.apple.com/library/ios/#releasenotes/ObjectiveC/RN-TransitioningToARC/Introduction/Introduction.html 对象
先看这个 : blog
http://blog.csdn.net/favormm/article/details/7023322
http://www.crifan.com/object_c_property_setter_assign_retain_copy_weak_strong/
http://www.crifan.com/object_c_property_setter_assign_retain_copy_weak_strong/