Ответ 1
Отсутствует заголовок заголовка при импорте внешних фреймов
Прямо от Документация разработчика Apple:
Вы можете импортировать внешние фреймворки с кодовой базой чистой Objective-C, кодовой базой чистой Swift, или смешанной версией. [...] Вы можете импортировать фреймворк в любой файл Swift другого объекта, используя следующий синтаксис:
import FrameworkName
Fix
Добавить import PubNub
framework.
import UIKit
import PubNub
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
var client:PubNub?
// ...
}
С объявлением import
, PubNub
объявляется автоматически завершает в редакторе Xcode, компилирует, связывает, строит и запускает.
Пошаговое руководство Swift Framework
Поскольку во многих комментариях ниже подразумевается, что Bridging-Headers всегда требуются, неправильно при использовании внешних фреймворков, как это сейчас происходит с директивой use_frameworks!
в Podfile
, найдите здесь чистый Swift решение. За ним следует проект Xcode
, который вы можете скачать и испытать.
Непонятно задокументировано в iOS Developer Library, в концепции Использование Swift с Cocoa и Objective-C, раздел Mix и Match, раздел Swift и Objective-C в том же проекте, пункт Импорт внешних фреймворков:
Процесс импорта внешней фреймворка является тем же самым, что структура написана на одном языке или содержит файлы из обоих языков.
Podfile
platform :ios, '8.0'
use_frameworks!
target 'SO-31642385' do
pod 'PubNub', '~>4.0'
pod 'Alamofire', '~> 1.3'
end
Установить контейнеры
] pod install
Downloading dependencies
Installing Alamofire (1.3.1)
Installing CocoaLumberjack (2.0.0)
Installing PubNub (4.0.4)
Generating Pods project
Integrating client project
Please close any current Xcode sessions and use `SO-31642385.xcworkspace` for this project from now on.
Структура импорта
import UIKit
import PubNub
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
var client:PubNub?
func application(_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions:
[UIApplicationLaunchOptionsKey: Any]?) -> Bool {
self.client = PubNub()
return true
}
// ...
}
► Найдите это решение на GitHub и дополнительные сведения о Быстрые рецепты.