黑馬程序員----Objective-C學習筆記之@property參數

------Java培訓、Android培訓、iOS培訓、.Net培訓--------

1、@property參數

參數包括
    1,getter=getterName,setter=setterName,設置setter與getter的方法名,除非你想自己取名,否則一般使用默認的名字即可。以免造成混亂。
    2,readwrite,readonly (只生成getter方法),設置可供訪問級別的限制。
    2,assign,調用setter方法時直接賦值,不進行任何retain操作。
    3,retain,調用setter方法時,先release舊值,然後對賦予的新值執行retain,相當於一次指針的拷貝。
    4,copy,setter方法進行Copy操作,與retain處理流程一樣,先release舊值,再Copy出新的對象,retainCount爲1。其實是建立一個新的對象。
    5,nonatomic,非原子性訪問,不加同步,多線程併發訪問會提高性能。atomic是Objc使用的一種線程保護技術,基本上來講,是防止在寫未完成的時候被另外一個線程讀取,造成數據錯誤。而這種機制是耗費系統資源的,所以在iPhone這種小型設備上,如果沒有使用多線程間的通訊編程,那麼nonatomic是一個非常好的選擇。
【以上引用自http://m.blog.csdn.net/blog/luohai859/42457963

【retain】在一個類中有其他對象的(關聯對象)的時候會使用retain,【適用於OC對象】

【assign】實例變量是基本數據類型時,是默認值,可以不寫

 

【替換setter方法】

例如:

 @property(assign,setter = isVip:,getter = isVip) BOOL vip;
        Person *p = [Person new];
        //替換後該set方法只能這樣調用
        [p isVip:YES];
        //替換後get方法可以有兩種調用方式,如下
        if ([p isVip]&&p.isVip) {
            NSLog(@"p is vip");
       }


打印結果:

2015-10-06 13:56:50.995 ClassOne[1503:303] p is vip


發佈了65 篇原創文章 · 獲贊 2 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章