我打算从我的应用程序发送邮件,并添加了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