ios 屬性特性

2022-09-23 15:54:12 字數 1097 閱讀 2383

ios-屬性特性,屬性的特性:為屬性提供了一些關鍵字用以控制setter、getter的實現細節,這些關鍵字稱為屬性的特性(attribute);

2、讀寫性

1)readonly:唯讀狀態,是告訴編譯器,屬性只生成getter方法,不生成setter方法;

2)readwrite:讀寫狀態,是告訴編譯器,屬性既生成setter方法又生成getter方法,既有設定器,也有訪問器,預設的讀寫特性;

3)setter=:指定屬性生成的setter方法的名字;

4)getter=:指定屬性生成的getter方法的名字。

@property (readwrite, setter=setname:, getter = getname) nsstring *name;

原子性1)atomic:原子特性,setter、getter方法在多執行緒訪問下是絕對安全的,即setter、getter內部做了多執行緒訪問處理。預設的原子特性。

2)nonatomic:非原子特性,settler、getter方法內部不會做多執行緒訪問處理,僅僅是普通的setter、getter方法。

3)程式開發過程中,setter、getter會頻繁使?,如果使?atomic需要 不斷的對setter、getter加鎖解鎖以保證執行緒訪問的安全,會?常占?系統資源,降低系統效能。宣告屬性時,通常使用nonatomic。

@property (nonatomic) nsstring *name;

語義特性

1)如果屬性是非物件型別(比如int、float等)屬性的語義設定使用assgin;

2)如果屬性是物件型別(比如nsstring等)並且要保留這個物件的時候,屬性的語義設定使用retain;

3)如果屬性是物件型別並且想要得到物件的副本,使用copy。

@class和import ".h"的區別

import會包含這個類的所有資訊,包括實體變數和方法,而@class只是告訴編譯器,其後面宣告的名稱是類的名稱在標頭檔案中, 一般只需要知道被引用的類的名稱就可以了。 不需要知道其內部的實體變數和方法,所以在標頭檔案中一般使用@class來宣告這個名稱是類的名稱。 而在實現類裡面,因為會用到這個引用類的內部的實體變數和方法,所以需要使用#import來包含這個被引用類的標頭檔案。

iOS 屬性的屬性

賦值 class.propertya instancea retain,assign,copy 只影響 instancea的計數,可能增加,可能不變。到這句執行完畢為止,只要instancea是合法的,propertya就是合法的。retain,assign,copy 誰建立了instancea還是...

物件屬性特性記錄

聽課微專業聽到了一嘴物件屬性可列舉之類的。以前看js高階程式設計,都是匆匆看過去了。我覺得我不能再把不懂的留到明天,總是記得這裡沒有太清楚。給自己留乙個坑。所以記錄一下 物件屬性有四種 vaule,writable configurable enumerable,還有get和set屬性。字面量 指的...

ios各版本特性

2011年度的wwdc 工程 師會與開發者們面對面的交流。但是我們最為關心莫過於伴隨著新品發布的開幕演講,因為每年的wwdc 都有可能帶來激動人心的新產品 新服務,去年六月,喬 布斯就親自發布了iphone 4,掀起了手機市場的又一股狂潮,而今年的wwdc 又將為我們帶來怎樣的驚喜呢,答案只有等到大...