ISO 學習筆記 2015-03-15,學習筆記2015-03-15

來源:互聯網
上載者:User

ISO 學習筆記 2015-03-15,學習筆記2015-03-15

Objective--C 一 關鍵字@property 定義變數函數@synthesize  實現變數函數二 函數alloc 分配記憶體init 初始化new 替代上面兩個函數 分配記憶體,並且初始化三 規則 0 變數的修飾符 @public @protected @private  @package@public    執行個體變數可以被在任何地方訪問。@protected 執行個體變數能被聲明它的類和子類訪問,所有沒有顯式制定範圍的執行個體變數都是@protected的。@private 執行個體變數只能被聲明它的類訪問。@package 使用runtime modern,一個@package執行個體變數在實現這個類的可執行檔鏡像中實際上是@public的,但是在外面就是@private(runtime請參考蘋果文檔Runtime Programming Guide)。         這個類型最常用於架構類的執行個體變數,使用@private太限制,使用@protected或者@public又太開放。1  類的執行個體成員變數(非靜態變數)賦值/取值 通常可以有三種方式,需要注意的是給字串賦值時需要在字串前加首碼 @ ;還有就是這些變數的訪問只能在非靜態函數轉中訪問;A 對象.成員變數 @protected @public @private  B 對象->成員變數  @public C [對象 成員變數set函數]  @public @protected @private  2 類的靜態變數 A Objective-C自身時不支援靜態變數的,但是由於Objective-C是C語言的超類,所以可以使用C語言的static關鍵字來建立全域變數,全域變數跟Java裡的static變數是一樣的,只有在類第一次載入的時候才初始化,知道程式被銷毀才被釋放掉B 靜態變數的調用都必須在靜態方法中,無論是賦值還是取值 C static靜態變數還可以在方法內定義,只不過在方法內定義的static靜態變數只能在方法內調用,方法外無法調用。3 動態函數 A 標識符 - B 調用方式 [執行個體化對象 函數]C 執行個體方法在堆棧上4 靜態函數 A 標識符 +B 調用方式 [類 函數]C 靜態方法在堆上分配記憶體 5 靜態方法與執行個體方法區分A 靜態方法常駐記憶體,執行個體方法不是,所以靜態方法效率高但占記憶體。事實上,方法都是一樣的,在載入時機和佔用記憶體上,靜態方法和執行個體方法是一樣的,在類型第一次被使用時載入。調用的速度基本上沒有差別B 靜態方法在堆上分配記憶體,執行個體方法在堆棧上。事實上所有的方法都不可能在堆或者堆棧上分配記憶體,方法作為代碼是被載入到特殊的代碼記憶體地區,這個記憶體地區是不可寫的C 執行個體方法需要先建立執行個體才可以調用,比較麻煩,靜態方法不用,比較簡單。D 靜態方法是靜態繫結到子類,不是被繼承。E 一般使用頻繁的方法用靜態方法,用的少的方法用動態。靜態速度快,占記憶體。動態速度相對慢些,但調用完後,立即釋放類,可以節省記憶體,可以根據自己的需要選擇是用動態方法還是靜態方法。F 靜態方法修改的是類的狀態,而對象修改的是各個對象的狀態,這點也是它們重要的區別G 類的執行個體化調用是在類的生命週期中存在,當類沒有了以後,對應的執行個體也就沒有了,對應的方法也就沒有了,靜態類不然,只要你引用了那個靜態類的命名空間,他就會一直存在,知道你退出系統。6  alloc\init 與 new  A 在實際開發中很少會用到new,一般建立對象咱們看到的全是[[className alloc] init]B 區別只在於alloc分配記憶體的時候使用了zone 它是給對象分配記憶體的時候,把關聯的對象分配到一個相鄰的記憶體地區內,以便於調用時消耗很少的代價,提升了程式處理速度; C 而為什麼不推薦使用new?如果使用new的話,初始化方法被固定死只能調用init. 而你想調用initXXX怎麼辦?沒門兒D 採用new的方式只能採用預設的init方法完成初始化,採用alloc的方式可以用其他定製的初始化方法。 7 @property @synthesize A 作用 簡化屬性變數的SET,GETB 簡單文法文法 B1 @property 資料類型 變數名; 在.h 檔案中;B2 @synthesize 變數名;C 複雜文法 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.