Ios Swift单元测试无法识别新的类初始值设定项

Ios Swift单元测试无法识别新的类初始值设定项,ios,objective-c,xcode,swift,Ios,Objective C,Xcode,Swift,我更改了Swift类的初始值设定项签名。我的其他swift类识别出了这个变化,但是当我更新方法调用时,我的单元测试类给了我一个错误 Extra argument 'bundle' in call 这是我新的初始签名人签名: var vc = ListController(nibName: nil, bundle: nil, contractor: theContractor) 旧的是: var vc = ListController(nibName: nil, bundle: nil, co

我更改了Swift类的初始值设定项签名。我的其他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和测试类
  • 已删除项目的派生数据
  • 完全从头开始重新编写测试类,只是为了把它放在一个新的文件名下
  • 目前的底线是,我的测试类没有识别出初始值设定项签名的更改

    ListController是用Swift和测试类编写的

    即使自动完成也会输入正确的方法签名。但如果在方法签名上使用CMD+空格,则会显示“未找到符号”。

    来自Sergiy Salyuk:

    Swift使您的客户无法访问继承的初始值设定项 添加指定的初始值设定项时派生类。看起来很像 在C++中的私有继承,其中继承的方法/数据是 隐式移动到“private”类部分。原因很简单: 如果有自定义初始值设定项,那么您的类可能需要 此初始值设定项用于构造类“不变量”。但有一个bug: 如果创建从UITableViewController派生的类并添加自定义 调用super.init(样式:)的初始值设定项将使用失败 未实现的初始值设定项“init(nibName:bundle:)”


    听起来您遇到了本质上相同的问题?

    调用中的“额外参数‘whatever’似乎是一种快速错误消息,通常意味着完全不同的错误。作为健全性检查,如果注释掉这一行,代码的其余部分会编译吗?是的,它会编译。而新的更改在构建目标中运行良好-只是不适用于单元测试,
    承包商的类型肯定是正确的?(我也看到了导致这个问题的原因。)通常这表明传递的参数类型错误,或者在需要非可选参数时传递可选参数(反之亦然)。@MikeTaverne我知道你在说什么。但我向你保证他们是正确的类型。我只删除了最后一个参数。就这样。此外,即使自动完成程序填写了相应的签名,也会抛出此错误