1

そこで、パーフェクト サーバーを使用して、クライアントに値を返すアプリケーションを開発しています。現時点では、別の 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 として保存します。辞書をオプションにする理由は、もちろん関数がエラーを返さない場合のためです。

4

1 に答える 1