Alamofireの汎用Result enumを受け取り、それを自分自身のResult型に変換する一般的な列挙体の初期化子を記述しようとしています。何を作ってみた、次のされています一般的なSwift enumを別の一般的なenumから初期化しますか?
public enum Result<Value, Error: ErrorType> {
case Success(Value)
case Failure(Error)
public init(result: Alamofire.Result) {
switch(result) {
case Alamofire.Result.Success(let val):
self = MyFramework.Result.Success(val)
case Alamofire.Result.Failure(let err):
self = MyFramework.Result.Failure(err)
}
}
}
私は次のようなエラーに実行していますしかし:
Cannot invoke 'Success' with an argument list of type '(Value)'
一般的な引数を明示的に指定すると、奇妙なコンパイラエラーはなくなりますが、その問題を解決するとさらに奇妙なsegfaultが判明します。それをもう少し詳しく調べてみると、「MyFramework」への参照が原因です。それがなぜそうかもしれないのかについての考えはありますか?私は私の答えにまとめました。 – blau
私はこれをテストしていたときに気付かなかったのですが、あなたのコードは私の単純なテストファイルよりも複雑な環境にあります。もう一度、bugs.swift.orgにバグを報告して、誰かがそれを見ることができるようにしておくべきだと思います(すでに既知の問題ではない場合)。 – jtbandes
します。私はバグ報告を提出する前に、問題をさらに分離しようとします。ご協力いただきありがとうございます。 – blau