Как использовать Objective-C Cocoapods в Swift Project?

Есть ли способ использовать CocoaPod, написанный в Objective C в моем проекте Swift, используя swift?

Я просто делаю заголовок? И если да, могу ли я получить доступ к объектам, классам и полям, определенным библиотеками в CocoaPod в Swift?

Есть много хороших CocoaPods, написанных в Objective C. Я знаю только Swift, и мне интересно, есть ли у меня способ использовать эти CocoaPods.

Ответ 1

Основной ответ на ваш вопрос: да, вы можете использовать objective-c код, созданный с помощью CocoaPods.

Более важный вопрос: "Как использовать такие библиотеки?" Ответ на этот вопрос зависит от флага use_frameworks! в вашем Podfile:
Представьте, что вы хотите использовать objective-c pod с именем CoolObjectiveCLib.

Если ваш файл pod использует флаг use_frameworks!:

// Podfile
use_frameworks!
pod 'CoolObjectiveCLib'

Тогда вам не нужно добавлять файлы заголовков мостов.
Все, что вам нужно, - это import framework в исходном файле Swift:

// MyClass.swift
import CoolObjectiveCLib

Теперь вы можете использовать все классы, представленные в lib.

Если ваш файл pod не использует флаг use_frameworks!:

// Podfile
pod 'CoolObjectiveCLib'

Затем вам нужно создать файл заголовка моста и импортировать туда все необходимые заголовки objective-c:

// MyApp-Bridging-Header
#import "CoolObjectiveCLib.h"

Теперь вы можете использовать все классы, определенные в импортированных заголовках.

Ответ 2

Вам просто нужен мостовой заголовок и импортируйте туда, что вам нужно.

Ответ 3

В podFile используйте флаг use_frameworks! Внутри Xcode в структуре папок Pod в зависимости вы добавляете xxxxxxx-umbrella.h в файлы поддержки.

В вашем {PROJECT_NAME}-Bridging-Header.h используйте:

#import "xxxxxxx/xxxxxxx-umbrella.h"

Это работает для меня.