Ich frage mich, was entscheidet, ob Sie Dateien verwenden dürfen <Header.h>
oder "Header.h"
wann Sie Dateien in Objective-C importieren. Bisher habe ich beobachtet, dass Sie die Anführungszeichen ""
für Dateien in Ihrem Projekt verwenden, für die Sie die Implementierungsquelle haben, und spitze Klammern, <>
wenn Sie auf eine Bibliothek oder ein Framework verweisen.
Aber wie genau funktioniert das? Was müsste ich tun, damit meine eigenen Klassen die Klammern verwenden? Im Moment erlaubt mir Xcode nicht, dies für meine eigenen Header zu tun.
Wenn ich mir einige Framework-Header ansehe, sehe ich auch, dass die Header sich gegenseitig referenzieren <frameworkname/file.h>
. Wie funktioniert diese Arbeit? Es sieht sehr nach Paketen in Java aus, aber meines Wissens gibt es in Objective-C kein Paket.
quelle
In C wird die Konvention verwendet, dass Header-Dateien in
<>
Klammern in 'System'-Verzeichnissen und""
in Benutzer- oder lokalen Verzeichnissen durchsucht werden .Die Definition von System und lokal ist etwas vage, denke ich. Ich glaube, es sucht in Systemverzeichnissen im Include-Pfad oder in CPPFLAGS nach <header.h>, und das lokale Verzeichnis oder Verzeichnis, das mit -I für den Compiler angegeben wurde, wird nach "header.h" -Dateien durchsucht.
Ich gehe davon aus, dass es für Objective-C ähnlich funktioniert.
quelle
Um Ihre eigenen Klassen mit "<>" zu importieren, müssen Sie die Header-Dateien (* .h) in den lib-Ordner des Compilers legen oder ein SYSTEM VARIABLES-Ponting für Ihren lib-Ordner festlegen.
quelle
Oder stellen Sie ein
Always Search User Path
,YES
damit Sie spitze Klammern verwenden können.quelle
Mit spitzen Klammern z
<Foundation/Foundation.h>
importieren Sie Systemdateien.Sie verwenden doppelte Anführungszeichen
"Person.h"
, um lokale Dateien (von Ihnen erstellte Dateien) zu importieren und dem Compiler mitzuteilen, wo er nach ihnen suchen soll.quelle
<Name.h>
-Angle brackets
weist den Präprozessor an, in den Verzeichnissen eines speziellen vordefinierten Systems zu suchen . Beispielsweise importieren Sie Systemheader wie<UIKit/UIKit.h>
oder fügen Frameworks hinzu"Name.h"
-Quotation marks
Weist den Präprozessor an, in einem aktuellen Verzeichnis zu suchen . Wenn kein Header gefunden wurde, versucht der Präprozessor ihn zu verwenden<Name.h>
. Normalerweise sollten Sie es mit den Dateien Ihres Projekts verwendenquelle
Gerade über das gleiche Problem gestolpert, gibt es 2 Arten von Suchpfaden ist Xcode:
Wenn Sie Ihren Header-Suchpfaden eigene Include-Ordner hinzufügen, können Sie problemlos spitze Klammern verwenden.
quelle
WAS IST HEADER FILE? Header-Dateien enthalten Definitionen von Funktionen und Variablen, die mithilfe der Anweisung #include des Vorprozessors in jedes C-Programm integriert werden können. Standard-Header-Dateien werden mit jedem Compiler geliefert und decken eine Reihe von Bereichen ab: Zeichenfolgenbehandlung, Mathematik, Datenkonvertierung, Drucken und Lesen von Variablen. Schließen Sie ein, dass es die Informationen über Eingaben wie scanf () und Ausgaben wie printf () und so weiter in einem Compiler enthält.
EINSCHLIESSEN
1) #INCLUDE: - Es ist ein Vorprozessor, der vor dem Prozess der Hauptfunktion verarbeitet. Die Hauptarbeit des Vorprozessors besteht darin, die Umgebung des Programms zu initialisieren, dh das Programm mit der Header-Datei. 2) .h: - (Header-Datei) Eine Header-Datei ist eine Datei mit der Erweiterung .h, die C-Funktionsdeklarationen und Makrodefinitionen enthält und von mehreren Quelldateien gemeinsam genutzt werden soll. F) Es gibt zwei Arten von Header-Dateien: die Dateien, die der Programmierer schreibt, und die Dateien, die mit Ihrem Compiler geliefert werden? A) In eckigen Klammern Die eckige Klammerform steht für "globale" Includes - diejenigen, die sich irgendwo auf dem an den Compiler übergebenen Include-Pfad befinden (z. B. #include). Sie wird für die Verwendung von Bibliotheksfunktionen verwendet, die alle im Compiler definiert sind. In C wird die Konvention verwendet, dass Header-Dateien in der Klammer <> in 'system' durchsucht werden. Verzeichnisse B) Anführungszeichen: - Das Anführungszeichen "header.h" steht für "lokale" Includes von Dateien (Sie müssen den relativen Pfad aus der aktuellen Datei angeben, z. B. #include "headers / my_header.h") In C die Konvention ist, dass Header-Dateien in "" in Benutzer- oder lokalen Verzeichnissen durchsucht werden. Darin soll eine Datei in eine andere aufgenommen werden (FILE INCLUSION). Es kann in zwei Fällen verwendet werden: Fall 1: Wenn wir ein sehr großes Programm haben, wird der Code am besten in mehrere verschiedene Dateien aufgeteilt, die jeweils eine Reihe verwandter Funktionen enthalten. Fall 2: Es gibt einige Funktionen und Mikrodefinitionen, die wir höchstens in allen Programmen benötigen, die wir schreiben. Ex ) In C ist die Konvention, dass Header-Dateien in "" in Benutzer- oder lokalen Verzeichnissen durchsucht werden. Darin soll eine Datei in eine andere aufgenommen werden (FILE INCLUSION). Es kann in zwei Fällen verwendet werden: Fall 1: Wenn wir ein sehr großes Programm haben, wird der Code am besten in mehrere verschiedene Dateien aufgeteilt, die jeweils eine Reihe verwandter Funktionen enthalten. Fall 2: Es gibt einige Funktionen und Mikrodefinitionen, die wir höchstens in allen Programmen benötigen, die wir schreiben. Ex ) In C ist die Konvention, dass Header-Dateien in "" in Benutzer- oder lokalen Verzeichnissen durchsucht werden. Darin soll eine Datei in eine andere aufgenommen werden (FILE INCLUSION). Es kann in zwei Fällen verwendet werden: Fall 1: Wenn wir ein sehr großes Programm haben, wird der Code am besten in mehrere verschiedene Dateien aufgeteilt, die jeweils eine Reihe verwandter Funktionen enthalten. Fall 2: Es gibt einige Funktionen und Mikrodefinitionen, die wir höchstens in allen Programmen benötigen, die wir schreiben. Ex
quelle