assign,copy,retain之間區別

2021-08-31 02:26:28 字數 416 閱讀 4571

* assign: 簡單賦值,不更改索引計數(reference counting)。

* copy: 建立乙個索引計數為1的物件,然後釋放舊物件

* retain:釋放舊的物件,將舊物件的值賦予輸入物件,再提高輸入物件的索引計數為1

還可以這樣理解:

* 使用assign: 對基礎資料型別 (nsinteger)和c資料型別(int, float, double, char,等)

* 使用copy: 對nsstring

* 使用retain: 對其他nsobject和其子類

總結:

copy是建立乙個新物件,retain是建立乙個指標,引用物件計數加1。

assign,copy,retain之間的區別

assign 簡單賦值,不更改索引計數 reference counting copy 建立乙個索引計數為1的物件,然後釋放舊物件 retain 釋放舊的物件,將舊物件的值賦予輸入物件,再提高輸入物件的索引計數為1 weak 和strong的區別 weak和strong 不同的是 當乙個物件不再有s...

nil Nil NULL NSNull 之間的區別

nil 是對objective c id 物件賦空值 例如 nsstring string nsstring stringwithformat test string nil 對於objective c 集合類物件 比如陣列物件,字典物件,當我們不需要再使用他們的時候,對他們release 的同時最...

TCP UDP HTTP SOCKET之間的區別

網路層協議 網際協議 ip 位址解析協議 arp 傳輸層協議 傳輸控制協議 tcp 使用者資料報協議 udp 應用層協議 超文字傳輸協議 http 檔案傳輸協議 ftp 遠端登入協議 telnet 網域名稱服務協議 dns 簡單郵件傳輸協議 smtp 郵局協議 pop3 tcp和udp使用ip協議從...