最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

IOS 頭文件導(dǎo)入-@class注意事項(xiàng)總結(jié)

 更新時(shí)間:2017年05月16日 11:18:53   投稿:lqh  
這篇文章主要介紹了IOS 頭文件導(dǎo)入-@class注意事項(xiàng)總結(jié)的相關(guān)資料,需要的朋友可以參考下

IOS 頭文件導(dǎo)入-@class注意事項(xiàng)總結(jié)

一,導(dǎo)入頭文件有兩種不同的方法:

使用引號(hào)或者使用尖括號(hào),例如,#import <Cocoa/Cocoa.h>和#import "Tire.h".帶尖括號(hào)的語(yǔ)句是用來(lái)導(dǎo)入系統(tǒng)頭文件的,而帶引號(hào)的語(yǔ)句則說(shuō)明導(dǎo)入的是項(xiàng)目本地的頭文件,如果你看到的頭文件名是用尖括號(hào)括起來(lái)的,那么這個(gè)頭文件對(duì)你的項(xiàng)目來(lái)說(shuō)是只讀的,因?yàn)樗鼘儆谙到y(tǒng)。如果頭文件名是被引號(hào)括起來(lái)的,那么你(或參與這個(gè)項(xiàng)目的其他人)就可以編輯它。

二,Objective-C提供了一種方法能夠減少由依賴關(guān)系引起的重新編譯所帶來(lái)的影響。

依賴關(guān)系問(wèn)題的存在是因?yàn)镺bjective-C編譯器需要某些信息才能夠工作。有時(shí),編譯器需要知道類的全部信息,例如它的實(shí)例變量配置,它所繼承的所有類等。而有的時(shí)候,編譯器只需要知道類名即可,不需要了解它的整個(gè)含義。

     例如,對(duì)象復(fù)合后,這個(gè)復(fù)合使用指向?qū)ο蟮闹羔?。這樣之所以能行得通,是因?yàn)樗蠴bjective-C對(duì)象都存放在動(dòng)態(tài)分配的內(nèi)存中。編譯器只需要知道這是一個(gè)類就可以了。然后它就地發(fā)現(xiàn)這個(gè)實(shí)例變量是指針的大小,而這個(gè)指針的大小在整個(gè)程序中都不會(huì)改變。

    Objective-C引入了關(guān)鍵字@class來(lái)告訴編譯器:“這是一個(gè)類,所以,我只需要通過(guò)指針來(lái)引用它。”這樣編譯器就會(huì)“平靜”下來(lái):它并不需要知道關(guān)于這個(gè)類的更多信息,只要了解它是通過(guò)指針來(lái)引用的即可。

    @class創(chuàng)建了一個(gè)前向引用。就是在告訴編譯器:“相信我,以后你會(huì)知道這個(gè)類到底是什么,但是現(xiàn)在,你只需要知道這些”,如果有循環(huán)依賴關(guān)系,@class也很有用。即A類使用B類,B類也使用A類。如果試圖通過(guò)#import語(yǔ)句讓這兩個(gè)類互相引用,那么最后就會(huì)出現(xiàn)編譯錯(cuò)誤。但是如果在A.h中使用@class B,在B.h中使用@class A,那么這兩個(gè)類就可以互相引用了。

三,有時(shí)候,我們?cè)谖募袑?dǎo)入了Engine.h而沒(méi)有導(dǎo)入<Cocoa/Cocoa.h>,這是為什么呢?

我們知道,Engine.h中已經(jīng)導(dǎo)入了<cocoa/Cocoa.h>,所以,不需要我們自己再導(dǎo)入一遍了。然而,如果你想在該文件里加上#import <Cocoa/Cocoa.h>,這是可以的,因?yàn)?import命令具有足夠的智能,它不會(huì)重復(fù)導(dǎo)入自己的文件。 

四,在學(xué)習(xí)過(guò)程中,我們認(rèn)識(shí)了跨文件依賴關(guān)系,在這種關(guān)系中,頭文件或源文件需要使用另一個(gè)頭文件中的信息。

文件之間互相重復(fù)的導(dǎo)入會(huì)增加編譯次數(shù),也會(huì)導(dǎo)致不必要的重復(fù)編譯。而巧妙地使用@class命令能夠減少編譯時(shí)間,@class告訴編譯器“相信我,你最終能夠了解這個(gè)名稱的類”,它可以減少不得不導(dǎo)入的頭文件數(shù)量。

 參考資料:《Objective-C基礎(chǔ)教程》

 感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

相關(guān)文章

  • iOS自定義滑桿效果

    iOS自定義滑桿效果

    這篇文章主要為大家詳細(xì)介紹了iOS自定義滑桿效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • iOS開(kāi)發(fā)支付寶支付成功返回字符串的處理操作

    iOS開(kāi)發(fā)支付寶支付成功返回字符串的處理操作

    很多朋友在做ios開(kāi)發(fā)項(xiàng)目時(shí),遇到支付寶支付成功返回字符串的處理操作不知道該怎么辦,今天小編給大家分享實(shí)例代碼,需要的朋友參考下
    2017-02-02
  • 總結(jié)IOS界面間跳轉(zhuǎn)的幾種方法

    總結(jié)IOS界面間跳轉(zhuǎn)的幾種方法

    前段時(shí)間被問(wèn)到界面間的跳轉(zhuǎn)有幾種方式?想不到說(shuō)的竟有點(diǎn)含糊其辭,于是就想總結(jié)一下。有句話說(shuō)的好,“前人種樹(shù),后人乘涼”,目前作為一個(gè)乘涼者,我也希望能種一些樹(shù)木,為代碼世界營(yíng)造一份清新。好了,話不多說(shuō),進(jìn)入主題。
    2016-08-08
  • Objective-C中的語(yǔ)法糖示例詳解

    Objective-C中的語(yǔ)法糖示例詳解

    開(kāi)發(fā)過(guò)程中我特別喜歡用語(yǔ)法糖,原因很簡(jiǎn)單,懶得看到一堆長(zhǎng)長(zhǎng)的代碼,但語(yǔ)法糖簡(jiǎn)單卻不那么簡(jiǎn)單,下面這篇文章主要給大家介紹了關(guān)于Objective-C中語(yǔ)法糖的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下。
    2018-01-01
  • Xcode中Info.plist字段詳解

    Xcode中Info.plist字段詳解

    我們通過(guò)本篇文章給大家整理了Xcode中Info.plist字段的詳細(xì)內(nèi)容,有需要的朋友學(xué)習(xí)下。
    2018-01-01
  • Xcode 升級(jí)導(dǎo)致插件失效的解決辦法

    Xcode 升級(jí)導(dǎo)致插件失效的解決辦法

    這篇文章主要介紹了Xcode 升級(jí)導(dǎo)致插件失效的解決辦法的相關(guān)資料,需要的朋友可以參考下
    2016-10-10
  • iOS輕點(diǎn)、觸摸和手勢(shì)代碼開(kāi)發(fā)

    iOS輕點(diǎn)、觸摸和手勢(shì)代碼開(kāi)發(fā)

    這篇文章主要為大家詳細(xì)介紹了iOS輕點(diǎn)、觸摸和手勢(shì)代碼開(kāi)發(fā),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • iOS開(kāi)發(fā)教程之Status Bar狀態(tài)欄設(shè)置的方法匯總

    iOS開(kāi)發(fā)教程之Status Bar狀態(tài)欄設(shè)置的方法匯總

    iOS 的 Status Bar 狀態(tài)欄是一個(gè)比較坑的地方,所以下面這篇文章主要給大家介紹了關(guān)于iOS開(kāi)發(fā)教程之Status Bar狀態(tài)欄設(shè)置的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2018-08-08
  • IOS改變UISearchBar中搜索框的高度

    IOS改變UISearchBar中搜索框的高度

    這篇文章主要介紹了IOS改變UISearchBar中搜索框的高度的相關(guān)資料,需要的朋友可以參考下
    2016-01-01
  • 談?wù)劄楹蝘OS開(kāi)發(fā)別用宏來(lái)定義常量

    談?wù)劄楹蝘OS開(kāi)發(fā)別用宏來(lái)定義常量

    最近在工程里看到很多不規(guī)范的使用,于是來(lái)寫(xiě)一篇博客來(lái)讓不是很清楚的小朋友們,使用正確的規(guī)范開(kāi)發(fā)ios,少埋點(diǎn)坑。
    2016-08-08

最新評(píng)論

隆尧县| 定日县| 安图县| 新建县| 沙湾县| 得荣县| 巩留县| 阜新市| 盐源县| 扎赉特旗| 肥城市| 临夏市| 祥云县| 安西县| 澄江县| 遂宁市| 松潘县| 宜春市| 昌平区| 玉林市| 嘉禾县| 时尚| 五指山市| 开封县| 阿鲁科尔沁旗| 农安县| 三江| 广德县| 康乐县| 铁岭县| 毕节市| 永年县| 五大连池市| 清苑县| 东辽县| 濮阳市| 浦县| 大足县| 新野县| 平舆县| 莲花县|