ios的屬性和成員變數在.h檔案和.m檔案的不同

來源:互聯網
上載者:User

標籤:style   blog   http   color   io   os   ar   for   strong   

今天被一個最近在學ios的同事問了一個問題:屬性寫在.h檔案中和在.m檔案中有什麼區別?當時錯愣了一下,隱約記得似乎有區別的,但是想不起來,根據自己的經驗告訴他,說沒區別,結果找了資料發現自己錯了,好尷尬,把這些基礎的給忘了。


屬性在.h檔案中和在.m中聲明是有區別的。區別就是,在.h檔案中聲明的屬性,外部類可以通過“類執行個體.屬性”來調用,但在.m中聲明的則不可以,擷取和設定的方法,只能是通過setValue:forKey和valueForKey來實現。


成員變數,有三種許可權,就是大家都知道的@private、@protected、@public ,寫在.m檔案中時,相當於是@private許可權,子類無法訪問,驗證了一下,做許可權修改也無效。而寫在.h檔案中,預設是@protected許可權,子類可以訪問,可以做許可權修改。因為存取權限指標對.h檔案。.h檔案中成員變數,外部類對其的調用,跟C++一樣,用->來調用。

以下摘自:http://blog.sina.com.cn/s/blog_68f368050101eop8.html

@interface部分為類擴充(extension)。

其被設計出來就是為瞭解決兩個問題的,其一,定義類私人方法的地方。其二,實現public readonly,private readwrite的property(意思是在h標頭檔中定義一個屬性對外是readonly的,但在類的內部希望是可讀寫的,所以可以在m源檔案中的@interface部分重新定義此屬性為readwrite,此時此屬性對外是唯讀,對內是讀寫的)。

此外,也可在此部分申明變數和屬性,但申明的變數,屬性和方法均為私人的,只能夠被當前類訪問,相當於private。




ios的屬性和成員變數在.h檔案和.m檔案的不同

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.