gpt4 book ai didi

swift - 无法从请求获取模型(VimeoNetworking)

转载 作者:行者123 更新时间:2023-11-30 10:44:38 25 4
gpt4 key购买 nike

我已经集成在ios应用程序VimeoNetworking中,直接使用git中的代码,因为我无法使用cocoapods(与其他pods不兼容使用use_frameworks!)集成来获取某些视频的私有(private)链接(我有一个专业帐户) .

我能够验证并请求视频信息。当请求返回并分配给类 (VIMVideo) 时,对象未正确加载。

如果我收到返回的响应,则会正确返回包含视频信息的 30 个项目的字典。

我已经从 VimeoNetworking 示例代码中检查了相同的代码,它可以在另一个项目中使用(使用相同的凭据,只有一个使用 Vimeo 的 pod,另一个则不使用)

如果我比较两个 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 示例中的 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 正确加载所有属性。我无法找到这两种实现之间的区别。

提前致谢

最佳答案

如果其他一切都相同,您可能会因选择不使用 use_frameworks! 而遇到问题。

例如,当我从 VimeoNetworking 示例项目中使用的 Podfile 中删除此内容时,我会看到以下警告:

Swift pod VimeoNetworking-iOS 依赖于 AFNetworking-iOS,后者不定义模块。要选择那些生成模块映射的目标(在构建为静态库时需要从 Swift 导入它们),您可以在 Podfile 中全局设置 use_modular_headers! ,或指定 :modular_headers => true 对于特定的依赖项。

This article explains需要 use_modular_headers! 并提到与 Objective-C 的互操作性。 VimeoNetworking 依赖于 Objective-C 中定义的模型类,我想知道到这些模型的映射是否受到影响。

关于swift - 无法从请求<VIMVideo>获取模型(VimeoNetworking),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56006221/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com