iOS中修飾符常用小結

2022-09-19 02:27:14 字數 910 閱讀 9201

1、copy,是複製引用物件位址的深拷貝

a:當修飾不可變型別的屬性時,如nsarray、nsdictionary、nsstring,用copy,用copy為關鍵字的話,呼叫setter方法後。是對賦值物件進行深拷貝,建立了乙個新的物件,不會根據原值的改變而改變。被strong修飾之後,由於只是強引用,所以副本物件陣列和源物件陣列只是指向同乙個記憶體區域,這樣就會造成副本物件陣列會隨著源物件陣列的改變而改變,即便有時候你並不想讓副本物件跟著改變。如果希望字串的值跟著賦值的字串的值變化,可以使用strong。所以用copy修飾的mutablearray也被視為array了,所以再用mutablearray的方法就會發生崩潰。

b:當修飾block型別的屬性時,如@property (nonatomic, copy) mobilenumberblock mobilenumberblock;主要是arc環境下訪問外界變數的block預設存放在棧上,但是外界變數銷毀後block也會廢棄,為了延長其生命週期,編譯器會自動將其從棧拷貝到堆上,執行的是copy方法的例項。

2、weak,修飾物件弱引用,不會引起迴圈引用,避免記憶體洩漏

a:xib拖拽生成的系統控制項@property (weak, nonatomic) iboutlet uilabel *errorlabel;

b:**的屬性變數@property (nonatomic, weak) id delegate;

3、strong修飾自定義控制項、類物件、可變型別物件@property (nonatomic, strong) nsmutablearray *searchlist;被strong修飾之後,由於只是強引用,所以副本物件陣列和源物件陣列只是指向同乙個記憶體區域,這樣就會造成副本物件陣列會隨著源物件陣列的改變而改變

4、assign 修飾各種常量@property (nonatomic, assign) bool issearch;

Java 修飾符小結。

類修飾符 public 可以從其他類中訪問 obstract 本類不能被例項化 final 不能再宣告子類 構造器修飾符 public 可以從所有的類中訪問 protected 只能從自己的類和它的子類中訪問 private 只能在本類中訪問 域修飾符 public 可以從所有的類中訪問 prote...

const修飾符 小結

1.const 和extern 預設狀態下const物件僅在檔案內有效 當編譯器以初始化的方式定義乙個const物件時,編譯器將在編譯過程中吧用到該變數的地方都替換成對應的值,為了執行上述替換,編譯器必須知道變數的初始值,所以通常const的有效域就在本檔案 為了能在其他檔案中使用該const變數 ...

iOS 屬性修飾符

1.讀寫性修飾符 readwrite readonly readwrite 表明這個屬性是可讀可寫的,系統為我們建立這個屬性的setter和getter方法。readonly 表明這個屬性只能讀不能寫,系統只為我們建立乙個getter方法,不會建立setter方法 2.setter相關修飾符 ass...