我在Swift类上更改了初始化程序签名。我的其他快速类认可了这个改变,但是当我更新方法调用
时,我的单元测试类给了我一个错误Extra argument 'bundle' in call
这是我的新初始化程序签名:
var vc = ListController(nibName: nil, bundle: nil, contractor: theContractor)
旧的是:
var vc = ListController(nibName: nil, bundle: nil, contractor: theContractor, estimate: theEstimate)
我尝试过的事情:
现在的底线是我的测试类无法识别初始化程序签名更改。
ListController是用Swift和测试类编写的。
即使自动完成也会输入正确的方法签名。但是如果你在方法签名上做了CMD + Space,它会说“找不到符号”。
答案 0 :(得分:2)
来自Sergiy Salyuk here:
Swift使继承的初始化程序无法访问您的客户端 添加指定的初始值设定项时的派生类。它看起来很相似 继承的方法/数据在C ++中的私有继承 隐式移动到“私人”类部分。原因很简单: 如果有自定义初始化程序,那么您的类可能需要 这个初始化器构造类“不变”。但有一个错误: 如果您创建从UITableViewController派生的类并添加自定义 调用super.init(style :)的初始化程序将失败并使用 未实现的初始化程序'init(nibName:bundle :)'
听起来你遇到了同样的问题?