1.原子操作修飾符
atomic:原子的,執行緒保護,預設屬性
nonatomic:非原子的,在多執行緒情況下使用,可以提高效率,常用
2.讀寫屬性
readonly:唯讀,只能生成getter
readwrite:預設屬性,可讀可寫,生成getter和setter
3.賦值屬性(記憶體管理)
assign:預設屬性,適用於基礎型別(nsinteger,nsrange等)和c資料型別(int,float,double,char等),非物件型別。簡單賦值,不更改索引計數
retain:使用於絕大多數物件問題(nsobject和其子類),該屬性在賦值的時候,先release之前的值,然後再賦新值給屬性,引用加1
copy:非可變物件型別,絕大部分情況下是指nsstring。建立乙個索引計數為1的物件,然後釋放舊物件
copy其實是建立了乙個相同的物件,而retain不是。例:
nsstring物件,位址為0×1111,內容為@」wangningning」
copy到另外乙個nsstring之後,位址為0×2222,內容相同,新的物件retain為1, 舊有物件沒有變化
retain到另外乙個nsstring之後,位址相同(建立乙個指標,指標拷貝),內容當然相同,這個物件的retain值+1
也就是說,retain是指標拷貝,copy是內容拷貝。在拷貝之前,都會釋放舊的物件。
property屬性修飾符
1.property 屬性修飾符 property 屬性修飾符 property 多個修飾符之間用逗號隔開 預設修飾符。可讀可寫,既有 setter 方法,也有 getter方法 唯讀。只有 getter 方法,沒有 setter方法 預設修飾符。原子的,考慮執行緒安全 非原子操作。ios開發中,官...
python 屬性修飾符 property
property,指示getter方法 name.setter,知識setter方法 class duck def init self,input name self.hidden name input name def get name self print inside getter retur...
property 後面可以有哪些修飾符?
1.執行緒安全的 atomic,nonatomic 2.訪問許可權的 readonly,readwrite 3.記憶體管理 arc assign,strong,weak,copy 4.記憶體管理 mrc assign,retain,copy 5.指定方法名稱 setter getter 1.執行緒安...