91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

IOS中頭文件導入-@class注意事項有哪些

發布時間:2021-07-09 09:25:59 來源:億速云 閱讀:134 作者:小新 欄目:移動開發

這篇文章將為大家詳細講解有關IOS中頭文件導入-@class注意事項有哪些,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

IOS 頭文件導入-@class注意事項總結

一,導入頭文件有兩種不同的方法:

使用引號或者使用尖括號,例如,#import <Cocoa/Cocoa.h>和#import "Tire.h".帶尖括號的語句是用來導入系統頭文件的,而帶引號的語句則說明導入的是項目本地的頭文件,如果你看到的頭文件名是用尖括號括起來的,那么這個頭文件對你的項目來說是只讀的,因為它屬于系統。如果頭文件名是被引號括起來的,那么你(或參與這個項目的其他人)就可以編輯它。

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

依賴關系問題的存在是因為Objective-C編譯器需要某些信息才能夠工作。有時,編譯器需要知道類的全部信息,例如它的實例變量配置,它所繼承的所有類等。而有的時候,編譯器只需要知道類名即可,不需要了解它的整個含義。

     例如,對象復合后,這個復合使用指向對象的指針。這樣之所以能行得通,是因為所有Objective-C對象都存放在動態分配的內存中。編譯器只需要知道這是一個類就可以了。然后它就地發現這個實例變量是指針的大小,而這個指針的大小在整個程序中都不會改變。

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

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

三,有時候,我們在文件中導入了Engine.h而沒有導入<Cocoa/Cocoa.h>,這是為什么呢?

我們知道,Engine.h中已經導入了<cocoa/Cocoa.h>,所以,不需要我們自己再導入一遍了。然而,如果你想在該文件里加上#import <Cocoa/Cocoa.h>,這是可以的,因為#import命令具有足夠的智能,它不會重復導入自己的文件。 

四,在學習過程中,我們認識了跨文件依賴關系,在這種關系中,頭文件或源文件需要使用另一個頭文件中的信息。

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

關于“IOS中頭文件導入-@class注意事項有哪些”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

ios
AI

揭东县| 斗六市| 莒南县| 云安县| 五寨县| 伊金霍洛旗| 常宁市| 高雄县| 驻马店市| 南康市| 开原市| 永顺县| 金华市| 新乡县| 蛟河市| 太湖县| 伊吾县| 无锡市| 罗城| 浦北县| 墨玉县| 慈溪市| 绥滨县| 廊坊市| 昌平区| 孟连| 安仁县| 姜堰市| 保德县| 涿鹿县| 共和县| 若尔盖县| 安泽县| 富蕴县| 紫阳县| 清丰县| 古浪县| 贵州省| 富裕县| 永修县| 西吉县|