assign: 簡單賦值,不更改索引計(jì)數(shù)(Reference Counting)。
copy: 建立一個(gè)索引計(jì)數(shù)為1的對(duì)象,然后釋放舊對(duì)象
retain:釋放舊的對(duì)象,將舊對(duì)象的值賦予輸入對(duì)象,再提高輸入對(duì)象的索引計(jì)數(shù)為1
使用assign: 對(duì)基礎(chǔ)數(shù)據(jù)類型 (NSInteger,CGFloat)和C數(shù)據(jù)類型(int, float, double, char, 等等)
使用copy: 對(duì)NSString
使用retain: 對(duì)其他NSObject和其子類
nonatomic,非原子性訪問,不加同步,多線程并發(fā)訪問會(huì)提高性能。注意,如果不 加此屬性,則默認(rèn)是兩個(gè)訪問方法都為原子型事務(wù)訪問
1.readonly表示這個(gè)屬性是只讀的,就是只生成getter方法,不會(huì)生成setter方法.
2.readwrite,設(shè)置可供訪問級(jí)別
3.retain,是說明該屬性在賦值的時(shí)候,先release之前的值,然后再賦新值給屬性,引 用再加1。
4.nonatomic,非原子性訪問,不加同步,多線程并發(fā)訪問會(huì)提高性能。注意,如果不 加此屬性,則默認(rèn)是兩個(gè)訪問方法都為原子型事務(wù)訪問。
copy是在你不希望a和b共享一塊內(nèi)存時(shí)會(huì)使用到。a和b各自有自己的內(nèi)存。
5. atomic和nonatomic用來決定編譯器生成的getter和setter是否為原子操作。在多線程環(huán)境下,原子操作是必要的,否則有可能引起錯(cuò)誤的結(jié)果
assign和retain的區(qū)別
assign就是直接賦值,從而可能引起1中的問題,當(dāng)數(shù)據(jù)為int, float等原生類型時(shí),可以使用assign。retain就如2中所述,使用了引用計(jì)數(shù),retain引起引用計(jì)數(shù)加1, release引起引用計(jì)數(shù)減1,當(dāng)引用計(jì)數(shù)為0時(shí),dealloc函數(shù)被調(diào)用,內(nèi)存被回收。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
名稱欄目:iosassign、copy、retain-創(chuàng)新互聯(lián)
轉(zhuǎn)載注明:http://chinadenli.net/article36/dhpesg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、網(wǎng)頁設(shè)計(jì)公司、微信公眾號(hào)、網(wǎng)站內(nèi)鏈、軟件開發(fā)、電子商務(wù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容