MRC Setter Getter 標(biāo)準(zhǔn)寫法

  1. @property (nonatomic, retain) NSNumber *count;
- (NSNumber *)count {
    return _count;
}

- (void)setCount:(NSNumber *)count {
    if (count != _count) {
        id oldValue = _count;  //在釋放舊值之前保持他,防止其他線程通過(guò)_count訪問(wèn)到已釋放的地址
        _count = [count retain];
        [oldValue release];    //安全釋放舊對(duì)象
    }
}
  1. @property (nonatomic, copy) NSNumber *count;
- (NSNumber *)count {
    return _count;
}

- (void)setCount:(NSNumber *)count {
    id oldValue = _count;
    _count = [count copy]; 
    [oldValue release];
}
//無(wú)需判斷新舊count指針.OC runtime源代碼也是這樣做的.
  1. @property (atomic, retain) NSNumber *count;
- (NSNumber *)count {
    NSNumber *count;
    @synchronized(self) {
        count = [_count retain]; 
    }
    return [count autorelease];   
}

- (void)setCount:(NSNumber *)count {
    id oldValue;
    @synchronized(self) {
        oldValue = _count;
        _count = [count retain];
    }
    [oldValue release];
}
//http://www.cocoawithlove.com/2009/10/memory-and-thread-safe-custom-property.html
//retain + autorelease防止另一個(gè)線程中的setter在返回值之前釋放該值 
  1. @property (assign) int count;
- (int)count {
    int count;
    @synchronized(self) {
        count = _count;
    }
    return count;
}

- (void)setCount:(int)count {
    @synchronized(self) {
        _count = count;
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.設(shè)計(jì)模式是什么? 你知道哪些設(shè)計(jì)模式,并簡(jiǎn)要敘述?設(shè)計(jì)模式是一種編碼經(jīng)驗(yàn),就是用比較成熟的邏輯去處理某一種類型...
    龍飝閱讀 2,294評(píng)論 0 12
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒(méi)有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對(duì)...
    cosWriter閱讀 11,621評(píng)論 1 32
  • 屬性修飾符簡(jiǎn)述 ios5之前是MRC,內(nèi)存需要程序員進(jìn)行管理,ios5之后是ARC,除非特殊情況,比如C框架或者循...
    咖啡綠茶1991閱讀 827評(píng)論 0 2
  • 307、setValue:forKey和setObject:forKey的區(qū)別是什么? 答:1, setObjec...
    AlanGe閱讀 1,708評(píng)論 0 1
  • 案例基本情況:一年級(jí)學(xué)生男生,聰明,具有一定的學(xué)習(xí)能力,課堂聽(tīng)講一般,家庭作業(yè)經(jīng)常不做,班主任聯(lián)系家長(zhǎng)打電話...
    LOVE小馬老師閱讀 644評(píng)論 0 2

友情鏈接更多精彩內(nèi)容