# 导入使用尖括号 < > 和引号”

我想知道,当您在 Objective-C 中导入文件时,是什么决定您是否可以使用 <Header.h>"Header.h"。到目前为止,我的观察结果是,对于实现源文件所在的项目中的文件,使用引号 "",在引用库或框架时使用尖括号 <>

但这到底是怎么做到的呢?我需要做什么才能让我自己的类使用括号?现在 Xcode 不允许我为自己的头部这样做。

另外,通过查看一些框架头文件,我发现这些头文件用 <frameworkname/file.h>相互引用。那个是如何工作的?它看起来很像 Java 中的包,但据我所知,在 Objective-C 中没有包这种东西。

47584 次浏览

Objective-C 和 C/C + + 有一个共同点; 引用的表单是“ local”include of files (你需要指定当前文件的相对路径,例如 #include "headers/my_header.h") ,而尖括号表单是“ global”include ——那些在传递给编译器的 include 路径(例如 #include <math.h>)中找到的。

因此,要让您自己的头部使用 < >而不是 " ",您需要将头部目录的相对路径或绝对路径传递给编译器。关于如何在 Xcode 做到这一点的信息,请参阅 ABc2。

有关更多信息,请参见 这个 MSDN 页面

要使用“ < >”导入您自己的类,您必须将头文件(* 。H)在编译器的 lib 文件夹或设置一个指向您的 lib 文件夹的 SYSTEMVARIABLES。

在 C 语言中,惯例是在‘ system’目录中搜索 <>括号中的头文件,在用户或本地目录中搜索 ""

我想,系统和本地的定义有点模糊。我相信它会在 include path 或 CPPFLAGS 中的系统目录中查找 < header.h > ,在用-I to 编译器指定的本地目录或目录中搜索“ header.h”文件。

我认为 Objective-C 的工作原理与此类似。

什么是头文件? 头文件包含函数和变量的定义,这些函数和变量可以通过使用预处理器 # include 语句合并到任何 C 程序中。每个编译器都提供标准的头文件,涵盖了一系列领域,包括字符串处理、数学、数据转换、打印和读取变量。 Ex-# 在编译器中包含有关输入(如 Scanf ())和输出(如 printf ()函数等)的信息。

包括

1) # 包括:- 它是对主要功能进行前处理的预处理器。 预处理器的主要工作是初始化程序环境,即带有头文件的程序。 2) h:- (头文件)头文件是有扩展名的文件。H,它包含 C 函数声明和宏定义,并在几个源文件之间共享。 Q)有两种类型的头文件: 程序员写的文件和编译器附带的文件? A)在尖括号内 角括号表示“ global”include ——那些在传递给编译器的 include 路径中找到的值(例如 # include) 它是用来使用库函数,这是所有现成的定义,在编译器。 在 C 语言中,惯例是在“ system”目录中搜索 < > 括号中的头文件 B)引号:-“ header.h” 引用的表单是“ local”include of files (您需要指定当前文件的相对路径,例如 # include“ headers/my _ header.h”) 在 C 语言中,约定是在用户或本地目录中搜索“”中的头文件。 在其中一个文件中包含另一个文件。(文件包含)。 它可以在两种情况下使用: 案例1: 如果我们有一个非常大的程序,代码最好分成几个不同的文件,每个文件包含一组相关的函数。 案例2: 在我们编写的所有程序中,我们最多只需要一些函数和微观定义。 前女友

只是偶然发现了同样的问题,有两种类型的搜索路径是 Xcode:

User Header Search Paths
Header Search Paths

如果您将您自己的包含文件夹添加到头部搜索路径中,您可以使用尖括号没有任何问题。

或者将 Always Search User Path设置为 YES,以便您可以使用尖括号。

使用尖括号(如 <Foundation/Foundation.h>)导入系统文件。

使用双引号 "Person.h"导入本地文件(创建的文件)并告诉编译器在哪里查找它们。

<Name.h>-Angle brackets告诉预处理器在 特别的预先指定的系统目录中进行搜索。例如,您可以导入诸如 <UIKit/UIKit.h>或添加的框架之类的系统标头

"Name.h"-Quotation marks告诉预处理器在 目前目录中进行搜索。如果没有找到报头,预处理器尝试使用 <Name.h>。通常您应该在项目文件中使用它

如果这是一个 Xcode 项目,并且希望将其包含在框架中,请打开要包含的头文件。然后,打开 Xcode 最右边的标签,在“ Target Membership”下面,单击您希望您的文件从哪个框架可用。

例如:。如果您的框架是 AlphaTools,并且您的头部是 AceHeader,那么您将选择“目标成员”上的 AlphaTools,这样您就可以访问 < AlphaTools/AceHeader.h