iOS中assign、copy 、retain

最近一直在思考這個問題,先給個怎麼用來提醒本身下吧,之後就這樣用試試 spa

* 使用assign: 對基礎數據類型 (NSInteger)和C數據類型(int, float, double, char,等)
* 使用copy: 對NSString(nsstring貌似用retain也是能夠的)
* 使用retain: 對其餘NSObject和其子類 對象

assign: 簡單賦值,不更改索引計數
copy: 創建一個索引計數爲1的對象,而後釋放舊對象
retain:釋放舊的對象,將舊對象的值賦予輸入對象,再提升輸入對象的索引計數爲1 索引

Copy實際上是創建了一個相同的對象,而retain不是:
好比一個NSString對象,地址爲0×1111,內容爲@」STR」
Copy到另一個NSString之 後,地址爲0×2222,內容相同,新的對象retain爲1, 舊有對象沒有變化 string

後面看理解了再加
相關文章
相關標籤/搜索