一部のビデオへのプライベートリンクを取得するためにcocoapods(use_frameworksの互換性のない使用!他のポッドとの使用)を使用して統合できないため、gitのコードを直接使用してiosアプリ VimeoNetworking に統合しました(私はプロアカウントを持っています)。
動画情報を認証して要求できます。リクエストが返されてクラス (VIMVideo) に割り当てられると、オブジェクトが正しく読み込まれません。
応答が返された場合、ビデオ情報を含む 30 項目の辞書が正しく返されます。
VimeoNetworking のサンプル コードから同じコードを確認しましたが、それは他のプロジェクトで動作します (同じ資格情報を使用し、異なる 1 つのみが Vimeo のポッドを使用し、もう 1 つは使用しません)。
2 つの json 応答を比較すると、どちらも同じデータですが、順序が異なります。問題は AFNetworking (3.1.0) で使用される逆シリアル化にあると感じています。
以前の認証
let authenticationController = AuthenticationController(client: VimeoClient.defaultClient, appConfiguration: AppConfiguration.defaultConfiguration, configureSessionManagerBlock: nil)
authenticationController.accessToken(token:tkn) { result in
switch result
{
case .success(let account):
print("authenticated successfully: \(account)")
break;
case .failure(let error):
print("failure authenticating: \(error)")
}
}
ビデオリクエスト
let requestdir: Request<VIMVideo> = Request<VIMVideo>(path: "/videos/XXXXXXXX")
let _ = VimeoClient.defaultClient.request(requestdir) { [weak self] result in
switch result
{
case .success(let response):
//Here videodir have not value, but
var videodir: VIMVideo! = response.model
case .failure(let error):
let title = "Video Request Failed"
let message = "\(requestdir.path) could not be loaded: \(error.localizedDescription)"
let alert = UIAlertController(title: title, message: message, preferredStyle: .alert)
let action = UIAlertAction(title: "OK", style: .default, handler: nil)
alert.addAction(action)
strongSelf.present(alert, animated: true, completion: nil)
}
}
コンソールキャプチャ ( 1 )
VIMEO EXAMPLE からの Pod ファイル (抜粋)
def shared_pods
pod 'AFNetworking', '3.1.0'
pod 'SwiftLint', '0.25.1'
pod 'VimeoNetworking', :path => '../VimeoNetworking'
end
プロジェクトの Pod ファイル (抽出)
target 'LibroDig' do
pod 'RestKit', '~> 0.27.3'
pod 'JSONModel'
pod 'SDWebImage', '~>3.8'
pod 'AFNetworking', '3.1.0'
end
VIMVideo がすべてのプロパティを正しくロードすることを期待していました。2 つの実装の違いを見つけることができません。
前もって感謝します