我制作了一个包装Alamofire的框架。
在我的框架中,当进行测试(在测试目标中)时,我有这段代码,它运行得很好。
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()。从初始化器返回之前,没有在所有路径上调用super init
init(calls: APICalls) {
super.init()
self.calls = calls
}
现在我得到了这个错误:
超类初始化器不能在初始化器之外被调用
你有什么想法这是什么问题吗?
Router
实现(初始化方式)。 - shallowThought@testable
,所以你可以看到内部方法。你需要一个公共的方法来看到框架外部。去掉@testable
,我敢打赌它与其他导入器具有相同的行为。 - Rob Napier