舉個例子: 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/