Objective C中property欄位的了解

2021-10-08 18:13:51 字數 1204 閱讀 8406

寫乙個@property編譯器自動

1)生成私有屬性,(屬性型別和@property屬性一致,屬性名前自動加乙個下劃線「_」)

2)生成getter  setter的宣告

3)生成getter  setter的實現

繼承:父類的@property可以被子類繼承,@property生成的屬性是私有的,在子類中無法直接訪問,可以通過getter  setter來訪問

@property引數

4)與生成getter、 setter方法名相關的:  getter 、setter

5)與強弱指標型別有關的:strong 、 weak

區別:atomic 、 nonatomic:

atomic預設值,生成setter方法的**會被加上一把執行緒安全鎖,安全、效率低下;

nonatomic在生成setter方法的**不會加執行緒安全鎖,不安全、效率高;

assign、retain(mrc)、copy :

assign:用於基本資料型別、非oc物件,setter方法直接賦值,不更改引用計數

retain:setter方法實現是標準的mrc記憶體管理**,先判斷新舊物件是否是同乙個物件,如果不是,release舊的retain新的物件,引用計數+1

-(void)setcar:(int)car{

if(_car ! = car)

{   [_car release];

_car = [car retain];

注意:retain引數只是生成的標準的setter方法,不會自動的在dealloc中生成release的**,所以要手動的重寫dealloc方法,生成release的**

copy: 拷貝特性,setter方法將release舊值,copy新值,傳入的物件是在記憶體中拷貝乙份,兩個指標指向不同的記憶體位址。

retain和copy的區別就是:copy其實是建立了乙個相同的物件,引用計數為1,而retain只是儲存其物件,並且其計數值+1。retain是指標拷貝,copy是內容拷貝。

readonly 、readwrite

readonly: 只生成getter方法,不會生成setter方法

readwrite:預設值,同時生成getter、setter

getter 、setter

通過getter=方法名、setter=方法名修改@property生成的getter 、setter方法的名字

jQuery中prop的用法

新增並移除名為 color 的屬性 button click function prop 方法設定或返回被選元素的屬性和值。當該方法用於返回屬性值時,則返回第乙個匹配元素的值。當該方法用於設定屬性值時,則為匹配元素集合設定乙個或多個屬性 值對。注意 prop 方法應該用於檢索屬性值,例如 dom 屬...

jQuery中prop的用法

新增並移除名為 color 的屬性 當該方法用於返回屬性值時,則返回第乙個匹配元素的值。當該方法用於設定屬性值時,則為匹配元素集合設定乙個或多個屬性 值對。注意 prop 方法應該用於檢索屬性值,例如 dom 屬性 如 selectedindex,tagname,nodename,nodetype,...

vue元件中prop屬性

所有的 prop 都使得其父子 prop 之間形成了乙個單向下行繫結 父級 prop 的更新會向下流動到子元件中,但是反過來則不行。每次父級元件發生更新時,子元件中所有的 prop 都將會重新整理為最新的值。這意味著你不應該在乙個子元件內部改變 prop。在元件中修改 prop 傳遞過來的資料 vu...