最近iOSを開始しましたが、Vitamio Objective-CライブラリとSwift Projectを統合しようとしています。私は様々な迅速なライブラリをインポートするためにCocoaPodを使用しています。 Vitamioはブリッジヘッダーファイルと統合されています。Swift CocoaPodをブリッジヘッダーファイルと統合する方法
ブリッジ-ヘッダーファイル
PodFile#ifndef inclub_Bridging_Header_h
#define inclub_Bridging_Header_h
#import <Foundation/Foundation.h>
#import "VDefines.h"
#import "VPlayerManageDef.h"
#import "VMediaPlayer.h"
#import "VMediaPlayerDelegate.h"
#import "VMediaExtracterDef.h"
#import "VMediaExtracter.h"
#endif /* inclub_Bridging_Header_h */
:この例では
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '10.0'
use_frameworks!
target 'inclub' do
pod "Player", "~> 0.2.0"
pod 'Alamofire', '~> 4.0'
pod 'Kingfisher', '~> 3.0'
pod 'ObjectMapper', '~> 2.2'
pod 'UIImageViewAlignedSwift'
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['SWIFT_VERSION'] = '3.0'
end
end
end
end
サンプルスウィフトファイル
import Alamofire
import Foundation
class BackEnd {
typealias JsonResponseHandler = (_ response: DataResponse<String>) -> Void
typealias ErrorHandler = (_ error: Error) -> Void
let defaultSession = URLSession(configuration: URLSessionConfiguration.default)
var dataTask: URLSessionDataTask?
static func tabletLogIn(user: String, password: String, responseHandler: @escaping JsonResponseHandler, errorHandler: @escaping ErrorHandler) {
let url = UrlFactory.getLogInUrl(user: user, pass: password)
print("Calling URL: " + url);
makeRequest(urlString: url, method: .post, responseHandler: responseHandler, errorHandler: errorHandler)
}
static func getAdOrderInfo(orderId: String, responseHandler: @escaping JsonResponseHandler, errorHandler: @escaping ErrorHandler) {
let url = UrlFactory.getAdOrderInfoUrl(orderId: orderId)
print("Calling URL: " + url);
makeRequest(urlString: url, method: .post, responseHandler: responseHandler, errorHandler: errorHandler)
}
static func getDetailedMusicChannels(responseHandler: @escaping JsonResponseHandler, errorHandler: @escaping ErrorHandler) {
let url = UrlFactory.getMusicChannelUrl()
print("Calling URL: " + url);
makeRequest(urlString: url, method: .post, responseHandler: responseHandler, errorHandler: errorHandler)
}
static func getTvChannels(responseHandler: @escaping JsonResponseHandler, errorHandler: @escaping ErrorHandler) {
let url = UrlFactory.getTvChannelUrl()
print("Calling URL: " + url);
makeRequest(urlString: url, method: .post, responseHandler: responseHandler, errorHandler: errorHandler)
}
static func makeRequest(urlString: String, method: HTTPMethod, responseHandler: @escaping JsonResponseHandler, errorHandler: @escaping ErrorHandler) {
Alamofire.request(urlString, method: method).validate().responseString {response in
switch response.result {
case .success:
responseHandler(response)
break
case .failure(let error):
errorHandler(error)
break
}
}
}
}
がAlamofireインポート動作しますが、最初のエラーメッセージがで表示されたファイルがありません型DataResponseのクラス
私は、プロジェクト - >ターゲット - > Objective-Cブリッジヘッダーにブリッジヘッダーファイルを追加するたびに、Vitamioライブラリをコンパイルします。しかし、私のCocoaPodsで追加されたクラスはありません。
私はブリッジヘッダーファイルを削除する場合、CocoaPodsは動作しますが、Vitamioは動作しません。
ご協力いただければ幸いです。
'Vitamio'のポッドリポジトリはありますか? 'Podfile'で何をしようとしているのか分かりません。 – Ryan
Vitamioのポッドレポはありません –