gpt4 book ai didi

linux - 完美/快速编译在 OSX 中工作,在 Linux 中失败

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:22:33 29 4
gpt4 key购买 nike

所以我正在使用 Perfect 服务器开发一个将值返回给客户端的应用程序。目前,它需要从另一个 API 下载一些数据,对其进行处理,然后将其发送给客户端。

然而,出于某种原因,它在 OSX 中编译良好,但在 Linux 中编译失败。 Linux 似乎不喜欢这些类型,但我看不出有什么区别。我在 Linux 上安装了 Swift 3.0.1,因为我在 OSX 上安装了 Xcode 8.1,所以它也是相同的版本(是的,我检查过)。

这是编译器在 Linux 中失败的地方:

swift: /home/buildnode/disk2/workspace/oss-swift-3.0-package-linux-ubuntu-14_04/swift/lib/Sema/CSApply.cpp:3223: swift::Expr *(anonymous namespace)::ExprRewriter::visitCoerceExpr(swift::CoerceExpr *): Assertion `!failed && "Not convertible?"' failed.
...
1. While type-checking 'getAllPrices' at /root/app/Sources/ValueProcessing.swift:104:9
2. While type-checking expression at [/root/app/Sources/ValueProcessing.swift:116:17 - line:116:58] RangeText="errors["bw"] = bw.1 as AnyObject?"
<unknown>:0: error: unable to execute command: Aborted

以下是编译器有问题的行:

104:

class func getAllPrices(_ code: String, isAlive: Bool, countryCode: String) -> ([BuyPriceObject]?, [String:AnyObject]?){

116:

errors["bw"] = bw.1 as AnyObject?

在此片段中,“getAllPrices”函数返回一个我命名为“bw”的元组。我将所有返回的错误附加到“错误”字典中,在那里它们可以选择性地存储为 AnyObject。我将字典设为可选的原因当然是为了防止函数返回任何错误。

最佳答案

好吧,明白了。愚蠢的我犯了这个错误,但这是:

如您所见,我尝试存储并返回一个可选的 AnyObject 值:

errors["bw"] = bw.1 as AnyObject?

然而,'getAllPrices' 函数为 [String:AnyObject] 字典定义了一个非可选 AnyObject 类型的返回值:

class func getAllPrices(_ code: String, isAlive: Bool, countryCode: String) -> ([BuyPriceObject]?, [String:AnyObject]?){

OSX 上的 Swift 似乎并不关心(在终端和它构建的 Xcode 中,不要问我为什么),但 Linux swift 似乎更严格一些。

解决方法:

errors["bw"] = bw.1 as AnyObject

关于linux - 完美/快速编译在 OSX 中工作,在 Linux 中失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40894583/

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