Zastanawiam się, co decyduje o tym, czy możesz używać, <Header.h>
czy "Header.h"
kiedy importujesz pliki w Objective-C. Do tej pory zauważyłem, że używasz cudzysłowów ""
dla plików w projekcie, do których masz źródło implementacji, oraz nawiasów ostrych, <>
gdy odwołujesz się do biblioteki lub frameworka.
Ale jak dokładnie to działa? Co musiałbym zrobić, aby moje własne klasy używały nawiasów? W tej chwili Xcode nie pozwoli mi tego zrobić dla moich własnych nagłówków.
Ponadto, patrząc w nagłówki niektórych frameworków, widzę, że nagłówki odwołują się do siebie za pomocą <frameworkname/file.h>
. Jak to działa? Wygląda bardzo podobnie do pakietów w Javie, ale o ile wiem, w Objective-C nie ma czegoś takiego jak pakiet.
źródło
W języku C konwencja jest taka, że pliki nagłówkowe w
<>
nawiasach są przeszukiwane w katalogach „systemowych” oraz""
w katalogach użytkownika lub lokalnych.Wydaje mi się, że definicja systemu i lokalnego jest nieco niejasna. Wydaje mi się, że wygląda to w katalogach systemowych w ścieżce dołączania lub w CPPFLAGS pod kątem <header.h>, a katalog lokalny lub katalog określony przez -I do kompilatora są przeszukiwane pod kątem plików "header.h".
Zakładam, że działa podobnie dla Objective-C.
źródło
Aby zaimportować własne klasy za pomocą "<>", musisz umieścić pliki nagłówkowe (* .h) w folderze lib kompilatora lub ustawić zmienne systemowe ponting na folder lib.
źródło
Lub ustaw,
Always Search User Path
abyYES
można było używać nawiasów kątowych.źródło
Za pomocą nawiasów kątowych np.
<Foundation/Foundation.h>
Importujesz pliki systemowe.Używasz podwójnych cudzysłowów
"Person.h"
do importowania plików lokalnych (plików, które utworzyłeś) i informowania kompilatora, gdzie ich szukać.źródło
<Name.h>
-Angle brackets
mówi preprocesorowi, aby przeszukał specjalnie wyznaczone katalogi systemowe. Na przykład importujesz nagłówki systemów, takie jak<UIKit/UIKit.h>
lub dodane struktury"Name.h"
-Quotation marks
mówi preprocesorowi, aby przeszukał bieżący katalog. Jeśli nagłówek nie został znaleziony, preprocesor próbuje użyć<Name.h>
. Zwykle powinieneś używać go z plikami projektuźródło
Właśnie natknąłem się na ten sam problem, istnieją 2 rodzaje ścieżek wyszukiwania to Xcode:
Jeśli dodasz własne foldery włączania do ścieżek wyszukiwania nagłówków, możesz bez problemu używać nawiasów kątowych.
źródło
Co to jest plik nagłówka? Pliki nagłówkowe zawierają definicje funkcji i zmiennych, które można włączyć do dowolnego programu w języku C za pomocą instrukcji #include preprocesora. Standardowe pliki nagłówkowe są dostarczane z każdym kompilatorem i obejmują szereg dziedzin, obsługę ciągów, matematykę, konwersję danych, drukowanie i odczyt zmiennych. Ex- #include to zawiera informacje o wejściu, takim jak scanf (), a out put jak funkcja printf () itp. W kompilatorze.
ZAWIERAĆ
1) #INCLUDE: - Jest to preprocesor, który przetwarza przed procesem funkcji głównej. Głównym zadaniem preprocesora jest inicjalizacja środowiska programu, czyli programu z plikiem nagłówkowym. 2) .h: - (Plik nagłówkowy) Plik nagłówkowy to plik z rozszerzeniem .h, który zawiera deklaracje funkcji C i definicje makr, który ma być współużytkowany między kilkoma plikami źródłowymi. P) Istnieją dwa typy plików nagłówkowych: pliki zapisywane przez programistę i pliki dostarczane z kompilatorem? A) W nawiasach kątowych Forma nawiasów kątowych jest przeznaczona dla „globalnych” włączeń - tych, które znajdują się gdzieś na ścieżce dołączania przekazanej do kompilatora (np. #Include) Służy do korzystania z funkcji bibliotecznej, która jest gotowa do zdefiniowania w kompilatorze. W języku C konwencja jest taka, że pliki nagłówkowe w nawiasach <> są przeszukiwane w 'system' katalogi B) Cudzysłowy: - „nagłówek.h” w cudzysłowie służy do „lokalnych” włączeń plików (należy określić względną ścieżkę do bieżącego pliku, np. #include „headers / my_header.h”) W C konwencja jest to, że pliki nagłówkowe w "" są przeszukiwane w katalogach użytkownika lub lokalnych. W nim jeden plik ma być dołączony do drugiego. (WŁĄCZENIE PLIKU). Można go użyć w dwóch przypadkach: Przypadek 1: Jeśli mamy bardzo duży program, kod najlepiej podzielić na kilka różnych plików, z których każdy zawiera zestaw powiązanych funkcji. Przypadek 2: Istnieją pewne funkcje i definicje mikro, których potrzebujemy co najwyżej we wszystkich programach, które piszemy. Dawny ) W C konwencja jest taka, że pliki nagłówkowe w "" są przeszukiwane w katalogach użytkownika lub lokalnych. W nim jeden plik ma być dołączony do drugiego. (WŁĄCZENIE PLIKU). Można go użyć w dwóch przypadkach: Przypadek 1: Jeśli mamy bardzo duży program, kod najlepiej podzielić na kilka różnych plików, z których każdy zawiera zestaw powiązanych funkcji. Przypadek 2: Istnieją pewne funkcje i definicje mikro, których potrzebujemy co najwyżej we wszystkich programach, które piszemy. Dawny ) W C konwencja jest taka, że pliki nagłówkowe w "" są przeszukiwane w katalogach użytkownika lub lokalnych. W nim jeden plik ma być dołączony do drugiego. (WŁĄCZENIE PLIKU). Można go użyć w dwóch przypadkach: Przypadek 1: Jeśli mamy bardzo duży program, kod najlepiej podzielić na kilka różnych plików, z których każdy zawiera zestaw powiązanych funkcji. Przypadek 2: Istnieją pewne funkcje i definicje mikro, których potrzebujemy co najwyżej we wszystkich programach, które piszemy. Dawny
źródło