你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> iOS開辟中#import、#include和@class的差別解析

iOS開辟中#import、#include和@class的差別解析

編輯:IOS開發綜合

1. 普通來講,導入objective c的頭文件時用#import,包括c/c++頭文件時用#include。

2. #import 肯定一個文件只能被導入一次,這使你在遞歸包括中不會湧現成績。<標志>

所以,#import比起#include的利益就是不會惹起穿插編譯。

#import && #class:

1. import會包括這個類的一切信息,包含實體變量和辦法(.h文件中),而@class只是告知編譯器,厥後面聲明的稱號是類的稱號,至於這些類是若何界說的,前面會再告知你。

2. 在頭文件中, 普通只須要曉得被援用的類的稱號便可以了。 不須要曉得其外部的實體變量和辦法,所以在頭文件中普通應用@class來聲明這個稱號是類的稱號。 而在完成類外面,由於會用到這個援用類的外部的實體變量和辦法,所以須要應用#import來包括這個被援用類的頭文件。

備注:#import 就是把被援用類的頭文件走一遍,即把.h文件裡的變量和辦法包括出去一次,且僅一次,而@class不消,所今後者編譯效力更高。

3. 在編譯效力方面斟酌,假如你有100個頭文件都#import了統一個頭文件,或許這些文件是順次援用的,如A–>B, B–>C, C–>D如許的援用關系。當最開端的誰人頭文件有變更的話,前面一切援用它的類都須要從新編譯,假如你的類有許多的話,這將消耗年夜量的時光。而是用@class則不會。

4. 假如有輪回依附關系,如:A–>B, B–>A如許的互相依附關系,假如應用#import來互相包括,那末就會湧現編譯毛病,假如應用@class在兩個類的頭文件中互相聲明,則不會有編譯毛病湧現。

備注:理論證實,A,B互相#import不會湧現編譯毛病。由於<標志>處曾經解釋#import時文件只被導入一次,所以此條不成立。

總結:

1. 假如不是c/c++,盡可能用#import。

2. 能在完成文件中#import,就不在頭文件中#import。

3. 能在頭文件中@class+完成文件中#import,就不在頭文件中#import。

以上所述是小編給年夜家引見的IOS開辟中#import、#include和@class的差別解析,願望對年夜家有所贊助,假如年夜家有任何疑問請給我留言,小編會實時答復年夜家的。在此也異常感激年夜家對本站網站的支撐!

【iOS開辟中#import、#include和@class的差別解析】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved