В чем разница между #import <Library / Library.h> и #import <Library.h> с использованием CocoaPods?

Я видел руководства по CocoaPods, которые рекомендуют импортировать заголовок библиотеки необходимого модуля следующим образом:

#import <Library/Library.h> 

Где Library – это имя библиотеки (например, #import <AFNetworking/AFNetworking.h> ).

Я также видел руководства, которые рекомендуют импортировать заголовок библиотеки необходимого модуля следующим образом:

 #import <Library.h> 

(например, #import <AFNetworking.h> )

Оба метода скомпилированы и, похоже, работают.

В чем разница и что нужно использовать?

2 Solutions collect form web for “В чем разница между #import <Library / Library.h> и #import <Library.h> с использованием CocoaPods?”

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

Как правило, лучше указать имя библиотеки, чтобы этот случай не произошел, но также и потому, что кто-то читает ваш код, какая библиотека является файлом заголовка, поскольку это не всегда очевидно на основе имени заголовка.

Actualy:

 #import <Library/Library.h> 

отличается от:

 #import <Library.h> 

В первом случае вы сообщаете препроцессору, что есть каталог в HEADER_SEARCH_PATH, который содержит каталог с именем «Библиотека», и в этом каталоге есть файл «Library.h». Во втором случае препроцессор предполагает, что он может напрямую найти «Library.h» в HEADER_SEARCH_PATH. Если оба каталога находятся в HEADER_SEARCH_PATH – между этими двумя нет разницы. Некоторые CocoaPods указывают в спецификациях

  s.header_mappings_dir = 'SomeFolderWhereSourcesPlaced' 

В этом случае

 A directory from where to preserve the folder structure for the headers files. If not provided the headers files are flattened. 

Итак, если указана опция header_mappings_dir – требуются полные пути, потому что установка pod будет указывать только на корневой каталог, где он помещает заголовки.

  • Архивирование завершается неудачей из-за неопределенных символов для Google Analytics
  • Не удалось установить сертификат SSL при установке pod?
  • Framework с Cococapods приводит к предупреждению «Класс XY реализован в обоих»
  • Как заморозить версии подпрограмм подкачки Cococapods
  • Что эквивалентно «разработке стручков» под Карфагеном?
  • Cocoapods: определение двойного интерфейса
  • Невозможно загрузить изображения из .xcasset в CocoaPods
  • Ошибка при создании проекта pods - Pod install
  • Cocoapods + Нельзя загрузить базовый модуль для 'x'
  • dyld: библиотека не загружена: @ rpath / FMDB.framework / FMDB
  • CocoaPods не связывается с проектом
  • Interesting Posts

    как бросить SKSpriteNode?

    isMemberOfClass не работает должным образом с ocunit

    Библиотека уведомлений стиля Growl / toast для iOS

    В каком цветовом пространстве используются устройства iOS?

    удалить iOS PhoneGap / Cordova – Управление заставкой экрана

    откройте приложение iphone из ссылки в веб-приложении в сафари

    Как сделать другой дизайн для небольших iPhone и iPhone 6 плюс использование классов размера?

    Действительно ли я должен явно поддерживать экраны iPhone 6 и iPhone 6 Plus?

    Xcode 7.3 – предупреждения не отображаются и не могут искать проект

    NSXMLParser анализирует XML-файл, закодированный с использованием Windows-1256

    UILocalNotification NSLocalizedString использует язык устройства

    NSData getBytes предоставляет разные результаты в симуляторе, чем на устройстве

    Ошибка UIDocument для URL-адреса?

    Как я могу найти данные о пище из своего номера штрих-кода?

    Как использовать ReactiveCocoa с распознавателями жестов

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.