Alamofireをラップするフレームワークを作成しました。初期化子から戻る前にすべてのパスでsuper initが呼び出されない
私のフレームワークでは、(テストターゲットで)テストするとき、私はこのコードをgrateしています。
import Foundation
@testable import NetworkManager
class MockRouter: Router {
enum APICalls {
case func1
case func2
}
var calls: APICalls!
init(calls: APICalls) {
self.calls = calls
}
}
私は別のプロジェクト
import Foundation
import NetworkManager
class JokesRouter: Router {
enum APICalls {
case func1
case func2
}
var calls: APICalls!
init(calls: APICalls) {
self.calls = calls
}
}
のフレームワークとして、それを追加すると、私はエラーを取得する:
super init isn't called on all paths before returning from initializer
だから私は(でsuper.initを追加しました)
init(calls: APICalls) {
super.init()
self.calls = calls
}
これでエラーが表示されます:
super.init cannot be called outside of an initializer
何が問題なのですか?
'Router'実装(初期化子のwize)を表示してください。 – shallowThought
ルータ – ilan
には初期化がありません。それは問題です。サブクラスが呼び出すための初期化子が必要です。 –