131

<Header.h>使用を許可するのか"Header.h"、Objective-Cでファイルをインポートするのかを決定するのは何でしょうか。これまでのところ、実装ソースを取得したプロジェクト内のファイルには引用符を使用し、ライブラリまたはフレームワークを参照する場合は""山かっこを使用します。<>

しかし、それはどのように正確に機能しますか?括弧を使用するために自分のクラスを取得するにはどうすればよいですか?現在、Xcodeでは自分のヘッダーに対してそれを行うことはできません。

また、いくつかのフレームワークヘッダーを見ると、ヘッダーが。で相互に参照していることがわかります<frameworkname/file.h>。それはどのよう機能しますか?Javaのパッケージによく似ていますが、私が知る限り、Objective-Cのパッケージのようなものはありません。

4

9 に答える 9

131

Objective-Cには、これがC /C++と共通しています。引用符で囲まれた形式は、ファイルの「ローカル」インクルード用です(たとえば、現在のファイルからの相対パスを指定する必要があります#include "headers/my_header.h")。一方、山かっこ形式は、「グローバル」インクルード用です。コンパイラ(例#include <math.h>)。

したがって、独自のヘッダーを使用するために、ヘッダーディレクトリの相対パスまたは絶対パスをコンパイラに渡す必要はあり< >ません。Xcodeでこれを行う方法については、「Xcodeのグローバルインクルードパスを追加する方法」を" "参照してください。

詳細については、このMSDNページを参照してください。

于 2009-06-25T14:53:55.640 に答える
17

Cでは、括弧内のヘッダーファイルは<>「システム」ディレクトリと""ユーザーまたはローカルディレクトリで検索されるという規則があります。

システムとローカルの定義は少し曖昧だと思います。インクルードパスのシステムディレクトリまたはCPPFLAGSで<header.h>を検索し、ローカルディレクトリまたはコンパイラへの-Iで指定されたディレクトリで「header.h」ファイルが検索されると思います。

Objective-Cでも同様に機能すると思います。

于 2009-06-25T14:54:50.927 に答える
6

「<>」を使用して独自のクラスをインポートするには、ヘッダーファイル(* .h)をコンパイラーのlibフォルダーに配置するか、システム変数をlibフォルダーに設定する必要があります。

于 2009-06-25T14:54:30.117 に答える
2

同じ問題に遭遇したばかりですが、Xcodeには2種類の検索パスがあります。

User Header Search Paths
Header Search Paths

独自のインクルードフォルダをヘッダー検索パスに追加すると、山かっこを問題なく使用できます。

于 2015-06-15T07:58:24.597 に答える
2

または、山かっこを使用できるようにに設定Always Search User Pathします。YES

于 2017-04-28T15:16:16.767 に答える
2

<Name.h>-Angle bracketsプリプロセッサに、事前に指定された特別なシステムのディレクトリを検索するように指示します。たとえば、フレームワークなどのシステムヘッダーをインポートし<UIKit/UIKit.h>たり、フレームワークを追加したりします

"Name.h"-現在のディレクトリQuotation marksを検索するようにプリプロセッサに指示します。ヘッダーが見つからなかった場合、プリプロセッサはを使用してみてください。通常、プロジェクトのファイルで使用する必要があります<Name.h>

于 2019-12-05T14:59:23.490 に答える
1

山かっこを使用します。たとえば<Foundation/Foundation.h>、システムファイルをインポートします。

二重引用符を使用し"Person.h"て、ローカルファイル(作成したファイル)をインポートし、それらを探す場所をコンパイラーに指示します。

于 2019-03-22T11:15:50.590 に答える
0

これがXcodeプロジェクトであり、フレームワークにインクルードする場合は、インクルードするヘッダーファイルを開いてください。次に、Xcodeの右端のタブを開き、[ターゲットメンバーシップ]の下で、ファイルを利用できるようにするフレームワークをクリックします。

たとえば、フレームワークがAlphaToolsで、ヘッダーがAceHeaderの場合、ターゲットメンバーシップでAlphaToolsを選択して、アクセスできるようにします。< AlphaTools/AceHeader.h

于 2021-05-06T19:24:40.387 に答える
-5

ヘッダーファイルとは何ですか?ヘッダーファイルには、プリプロセッサの#includeステートメントを使用して任意のCプログラムに組み込むことができる関数と変数の定義が含まれています。標準のヘッダーファイルは各コンパイラで提供され、さまざまな領域、文字列処理、数学、データ変換、変数の印刷と読み取りをカバーします。Ex- #includeには、scanf()のような入力、およびコンパイラーのprintf()関数などの出力に関する情報が含まれます。

含む

1)#INCLUDE:-メイン関数の処理の前に処理するプリプロセッサです。プリプロセッサの主な作業は、プログラムの環境、つまりヘッダーファイルを含むプログラムを初期化することです。2).h :-(ヘッダーファイル)ヘッダーファイルは、拡張子が.hのファイルで、C関数の宣言とマクロ定義が含まれており、複数のソースファイル間で共有されます。Q)ヘッダーファイルには、プログラマーが作成するファイルとコンパイラーに付属するファイルの2種類がありますか?A)角括弧内角括弧形式は「グローバル」インクルード用です-コンパイラに渡されるインクルードパスのどこかにあるもの(例:#include)コンパイラですぐに定義できるライブラリ関数を使用するために使用されます。Cでは、慣例として、<>括弧内のヘッダーファイルは「システム」で検索されます。ディレクトリB)引用符:-引用符で囲まれた「header.h」形式は、ファイルの「ローカル」インクルード用です(現在のファイルからの相対パスを指定する必要があります。たとえば、#include "headers / my_header.h")Cでは規則""のヘッダーファイルは、ユーザーまたはローカルディレクトリで検索されます。その中に、あるファイルが別のファイルに含まれるようにします。(ファイルインクルード)。これは2つのケースで使用できます。ケース1:非常に大きなプログラムがある場合、コードはいくつかの異なるファイルに分割され、それぞれに関連する関数のセットが含まれています。ケース2:私たちが書くすべてのプログラムでせいぜい必要ないくつかの関数とマイクロ定義があります。元 )Cでは、「」のヘッダーファイルはユーザーディレクトリまたはローカルディレクトリで検索されるという規則があります。その中に、あるファイルが別のファイルに含まれるようにします。(ファイルインクルード)。これは2つのケースで使用できます。ケース1:非常に大きなプログラムがある場合、コードはいくつかの異なるファイルに分割され、それぞれに関連する関数のセットが含まれています。ケース2:私たちが書くすべてのプログラムでせいぜい必要ないくつかの関数とマイクロ定義があります。元 )Cでは、「」のヘッダーファイルはユーザーディレクトリまたはローカルディレクトリで検索されるという規則があります。その中に、あるファイルが別のファイルに含まれるようにします。(ファイルインクルード)。これは2つのケースで使用できます。ケース1:非常に大きなプログラムがある場合、コードはいくつかの異なるファイルに分割され、それぞれに関連する関数のセットが含まれています。ケース2:私たちが書くすべてのプログラムでせいぜい必要ないくつかの関数とマイクロ定義があります。元

于 2014-12-06T07:48:57.707 に答える