问题描述
我有一些相当旧的代码,我现在必须为 Xcode 12.4 更新。我正在使用 PromiseKit 并且不得不升级该代码以满足编译器的要求。现在我有点困惑/沮丧,因为我不得不添加不必要的代码以满足编译器:
如果成功连接到服务器,我的代码必须做一些事情。
请注意,我没有明确使用回调的结果,我以前在第一行中有 products -> Void
并且在第一个闭包中没有 return 语句。但是,现在我必须明确定义 loadProducts
方法返回的内容。此外,我还必须添加一个 return 语句,这对我来说也不是必需的:
result -> Promise<[Product]> in
return .value(result)
以前可以省略这些 in
语句,但现在我必须重新声明 loadProducts
方法的内部工作原理。
这是代码
self.service?.loadProducts().then { result -> Promise<[Product]> in
vc.isSigningIn = false
vc.dismiss(animated: true){
HUD.flash(.success,delay: 0.5)
}
self.saveMoc()
self.storeCredentials(domain: domain,username: username,password: password)
return .value(result)
}.catch(policy: .allErrors) { error in
print(error)
vc.errorString = "An error occured"
}
我可能遗漏了一些东西,但为了使用新框架编译代码而必须添加的内容感觉违反直觉。
我也想知道为什么 swift 不能使用一些“推断魔法”来弄清楚这些承诺返回什么以及为什么必须重新声明这一点
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)