#import с помощью угловых скобок <> и кавычек ""

Мне интересно, что решает, разрешено ли вам использовать <Header.h> или "Header.h" при импорте файлов в Objective-C. До сих пор я наблюдал, что вы используете кавычки "" для файлов вашего проекта, к которым у вас есть источник реализации, и угловые скобки <>, когда вы ссылаетесь на библиотеку или фреймворк.

Но как именно это работает? Что мне нужно сделать, чтобы мои собственные классы использовали скобки? Прямо сейчас Xcode не позволит мне делать это для моих собственных заголовков.

Кроме того, просматривая заголовки некоторых фреймворков, я вижу, что заголовки ссылаются друг на друга с помощью <frameworkname/file.h>. Как это работает? Он очень похож на пакеты на Java, но, насколько я знаю, в Objective-C нет такой вещи, как пакет.

Ответ 1

Objective-C имеет это общее с C/С++; цитированная форма для "локальных" включает в себя файлы (вам нужно указать относительный путь из текущего файла, например #include "headers/my_header.h"), тогда как форма угловой скобки для "глобальных" включает в себя: те, которые находятся где-то на include путь, переданный компилятору (например, #include <math.h>).

Таким образом, чтобы ваши собственные заголовки использовали < > not " ", вам необходимо передать либо относительный, либо абсолютный путь для вашего каталога заголовков в компилятор. См. "Как добавить глобальный путь включения для Xcode" для получения информации о том, как это сделать в Xcode.

Подробнее см. эту страницу MSDN.

Ответ 2

В C соглашение состоит в том, что файлы заголовков в < > скобках выполняются в "системных" каталогах и "" в пользовательских или локальных каталогах.

Определение системного и локального немного неопределенно, я думаю. Я считаю, что это выглядит в системных каталогах в include-пути или в CPPFLAGS для и локальном каталоге или каталоге, указанном с -I для компилятора, для файлов "header.h".

Я предполагаю, что он работает аналогично для Objective-C.

Ответ 3

Чтобы импортировать свои собственные классы с помощью "< > ", вы должны поместить файлы заголовков (*.h) в папку lib компилятора или установить pONting SYSTEM VARIABLES в вашу папку lib.

Ответ 4

Или установите Always Search User Path в YES, чтобы использовать угловые скобки.

Ответ 5

"" - Quotation marks Найдите указанный файл в той же папке, что и этот файл (файл .m, в котором находится строка #import).

<> - Angle brackets Ищите названный файл среди различных путей поиска заголовка, указанных в настройках сборки. (Эти пути поиска устанавливаются автоматически, и вам обычно не нужно их изменять.)

В общем, вы будете использовать angular скобки для ссылки на файл заголовка, принадлежащий API-интерфейсу Cocoa, и кавычки для ссылки на файл заголовка, который вы написали. Если вам интересно, что импортирует директива #import, выберите ее (в Xcode) и выберите "Файл" → "Быстро открыть", чтобы отобразить содержимое указанного заголовочного файла.

Подробнее здесь

Ответ 6

С угловыми скобками, например <Foundation/Foundation.h> вы импортируете системные файлы.

Вы используете двойные кавычки "Person.h", чтобы импортировать локальные файлы (файлы, которые вы создали) и сообщить компилятору, где их искать.

Ответ 7

Просто наткнулся на ту же проблему, существует 2 типа путей поиска: Xcode:

User Header Search Paths
Header Search Paths

Если вы добавляете свои собственные включенные папки в пути поиска заголовков, вы можете без проблем использовать угловые скобки.

Ответ 8

ЧТО ТАКОЕ ФАЙЛ ЗАВОДА? Заголовочные файлы содержат определения функций и переменных, которые могут быть включены в любую программу на языке С, используя оператор pre-processor #include. Стандартные файлы заголовков предоставляются каждому компилятору и охватывают целый ряд областей, обработку строк, математику, преобразование данных, печать и чтение переменных. Ex- #include содержит информацию о вводе типа scanf() и out, как функция printf() и т.д. В компиляторе.

ВКЛЮЧИТЬ

1) #INCLUDE: - Это предварительный процессор, который обрабатывает до процесса основной функции. Основная работа препроцессора - инициализировать среду программы, то есть программу с файлом заголовка. 2).h: - (Файл заголовка) Заголовочный файл представляет собой файл с расширением .h, который содержит объявления функций C и определения макросов и должен использоваться совместно с несколькими исходными файлами. Q) Есть два типа файлов заголовков: файлы, которые программист пишет, и файлы, которые поставляются вместе с вашим компилятором? A) В скобках angular Angular - форма скобки для "глобальных" включает в себя - те, которые находятся где-то на пути включения, переданном компилятору (например, #include) Он используется для использования библиотечной функции, которая все готова определить в компиляторе. В C соглашение состоит в том, что файлы заголовков в < > скобках выполняются в каталогах "system" B) Цитата: - "header.h" цитированная форма для "локальных" включает в себя файлы (вам нужно указать относительный путь из текущего файла, например, #include "headers/my_header.h" ) В C соглашение состоит в том, что заголовочные файлы в "" выполняются в пользовательских или локальных каталогах. В нем один файл для включения в другой. (ВКЛЮЧЕНИЕ ФАЙЛА). Его можно использовать в двух случаях: Случай 1: если у нас очень большая программа, код лучше всего разделить на несколько разных файлов, каждый из которых содержит набор связанных функций. Случай 2: Существуют некоторые функции и определения микросов, которые нам нужны в большинстве программ, которые мы пишем. Ex