我打算從我的應用程序發送郵件,並添加了MessageUI框架。在蘋果公司的示例代碼中,他們寫到:這些#import聲明有什麼區別?
#import <MessageUI/MessageUI.h>
#import <MessageUI/MFMailComposeViewController.h>
這些和那裏的「斜線」在那裏有什麼區別?
我打算從我的應用程序發送郵件,並添加了MessageUI框架。在蘋果公司的示例代碼中,他們寫到:這些#import聲明有什麼區別?
#import <MessageUI/MessageUI.h>
#import <MessageUI/MFMailComposeViewController.h>
這些和那裏的「斜線」在那裏有什麼區別?
斜線基本上是說.h文件是在斜線之前命名的框架框架中。
兩者的區別在於,通過使用/MessageUI.h>
,您可以像導入框架中的每個類一樣進行操作。當你使用/MFMailComposeViewController.h>
時,你只能在框架中實現一個類。因此,除了導入的課程外,其他課程將不可用。
#import <MessageUI/MessageUI.h> #import <MessageUI/MFMailComposeViewController.h>
是什麼, 和最新的「斜線」做有那些區別?
該工具集增加了對框架的支持,併爲框架定義了搜索路徑(例如用於標題和鏈接),並給定了構建設置。
框架定義了一個Headers/
目錄。
使用此方法時,可以在使用路徑分隔符(/
)分隔時分解/發現框架路徑。
與蘋果的框架,第一個成語#import <FRAMEWORK_NAME/FRAMEWORK_NAME.h>
是通過包含(大部分)框架的公共標題包含框架的常見聲明的常用方法。在很多情況下,它將包含全部的框架公共標題,但也有一些例外。在你的程序中使用這個習慣用法通常是最好的,因爲它可以讓你從頭文件的內部依賴關係中隔離出來,這些依賴關係可能會在不同版本間發生變化。
第二種形式與第一種形式類似,因爲它們都指定要包含的特定標題。不同之處在於你明確地包含了一個特定的頭文件 - 在大多數情況下,這意味着你只包含了一部分的頭文件(當框架的主文件包含以蘋果的方式構建時)。很多庫並不是以這種方式使用的 - 編譯器可能會遇到未聲明的類型(作爲示例)。在這種情況下,如果遇到構建錯誤,則必須包含標頭的附加依賴項。
有幾個原因可能會導致您偏好第一種形式,主要原因是易於維護。體貼的框架維護人員將確切地包括框架的頭部必須包含的內容,而不會出錯。
有幾個原因,您可以選擇後一種形式:
技術上不正確,但它作爲解釋。 – JustSid 2011-05-22 21:59:10
請問有什麼不對嗎?請糾正我,我會更新答案。 – 2011-05-22 22:03:28