【发布时间】:2016-11-30 17:28:41
【问题描述】:
所以我正在使用 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?
在这个 sn-p 中,“getAllPrices”函数返回一个我命名为“bw”的元组。我将所有返回的错误附加到一个“错误”字典中,在那里它们可以选择存储为 AnyObject。我将字典设为可选的原因是函数当然不会返回错误。
【问题讨论】:
标签: linux swift swift3 perfect