91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

OC基礎之-Property(屬性)和點語法

發布時間:2020-07-15 04:19:07 來源:網絡 閱讀:354 作者:終結者初學 欄目:開發技術
  1. 學習屬性之前回憶一下之前學到的setter方法和getter方法:

    (1)setter方法的作用:用來為單一的實例變量賦值(只能是一個實例變量,多了的叫做get方法)

    (2)setter方法的寫法標準: - 號方法,  無返回值,   名字以set開頭+要設置的變量的實例變量名(首字母需大寫):(setter方法有且只有一個參數)+參數的類型(和實例變量的類型相同)+參數名(和實例變量名相同)

    (3)getter方法的作用:用來獲取單一實例變量的值.

    (4)getter方法的寫法標準: - 號方法,  有返回值(返回值類型和實例變量類型相同)  方法名直接和實例變量名相同 無參數

  2. 當實例變量較多的時候,用setter方法和getter方法會很不方便,代碼量也加大,所以就有了屬性的出現.屬性是OC2.0之后出來的新的語法,用來替代setter和getter方法,使用屬性可以快速創建setter和getter方法的聲明,以及setter和getter方法的實現.此外,屬性還添加了對實例變量操作的安全處理.

    (1)屬性的寫法標準: @property(用來定義屬性)   屬性的類型(和實例變量的類型相同)  屬性名(和實例變量名相同)

    (2)注意:@property  知識自動聲明setter和getter方法的聲明

  3. 屬性的三大特性:

    (1)第一大特性:讀寫特性

         readonly   告訴編譯器,屬性在自動生成方法時,只會生成getter方法,不會生成setter方法

         readwrite  告訴編譯器,屬性在自動生成方法時,既要生成setter方法,也要生成getter方法,為系統默認的讀寫特性.

         setter = aa;  告訴編譯器,當自動生成setter方法時,setter方法的方法名為指定的名字aa,而不采用默認的

         getter = bb;  告訴編譯器,當自動生成getter方法時,getter方法的方法名為指定的名字bb,而不是采用默認的

    (2)第二大特性:原子性特性

         atomic : 原子特性,保證線程安全,內部做了安全處理(枷鎖與解鎖).為系統默認的原子特性.

         nonatomic : 非原子性,不保證線程的安全,因為對于setter和getter方法的使用,比較頻繁,在一段時間內可能要多次訪問,所以使用atomic會非常消耗系統的資源,降低程序的執行效率,使用nonatomic雖然不能保證線程的安全,但是一般情況下得使用都是安全的,所以對于原子特性,使用nonatomic

    (3)第三大特性:語義特性

         assign : 直接賦值,針對于基本數據類型使用,也可以針對對象類型使用,為系統默認的語義特性

         copy : 針對對象類型使用,并且要服從NSCopying協議的對象才可以,會復制出一個新的對象,擁有新的對象所有權(引用計數+1)(暫時理解到這里)

         retain : 針對對象類型使用,會造成對象的引用計數+1.

  4. 屬性的實現:

    (1)寫法標準:@synthesize  屬性名  =  實例變量(指定的setter和getter方法內部所要操作的實例變量)

    (2)如果標準寫法中指定的實例變量沒有定義,系統會自動生成指定的實例變量,但是生成的實例變量是私有的,子類不能直接訪問,如果實例變量想讓子類訪問,那么在.h文件中必須定義實例變量.

    (3)如果未指定setter和getter內部所要訪問的實例變量時,系統會自動生成一個和屬性名一樣的實例變量.

    (4)對于setter和getter方法,如果我們實現了,系統就不會再自動生成

    (5)如果在.m文件中未通過@synthesize對屬性進行合成,系統會自動合成,只不過此時系統默認的setter和getter方法內部所操作的實例變量是 _屬性名

    (6)如果將@synthesize省略,我們自己實現setter和getter方法時,系統就不會生成對應的setter和getter方法,以及實例變量.

    (7)常用的是只在.h文件中聲明屬性,其他的系統自動生生成.

  5. 點語法,是一種快速訪問setter和getter方法的方式(類似于之前的結構體變量訪問結構體成員)

    寫法標準:對象名.屬性名   -----如果放在等號的左邊,就是調用setter方法,其他情況都是調用getter方法

  6. 聲明屬性時默認生成對應的setter和getter方法,所以屬性和setter及getter方法都有關聯.

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

塘沽区| 湖州市| 新密市| 松滋市| 天峻县| 习水县| 大化| 凭祥市| 沂水县| 肇东市| 丘北县| 衡阳县| 许昌县| 巢湖市| 新兴县| 涞水县| 武清区| 临猗县| 定陶县| 中方县| 平昌县| 博罗县| 历史| 伊宁市| 金平| 都匀市| 青海省| 志丹县| 迭部县| 遂平县| 太仆寺旗| 高邑县| 台北县| 维西| 榆社县| 疏勒县| 美姑县| 上高县| 双柏县| 达拉特旗| 华安县|