我在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)

我尝试过的事情:

  1. 清理项目
  2. 从编译源中删除并重新添加了ListController和测试类,以用于单元测试目标和测试目标
  3. 删除了项目的派生数据
  4. 从头开始完全重写了测试类,只是将其放在了新文件名下

截至目前,最重要的是我的测试类无法识别初始化程序签名更改。

ListController和测试类都是用Swift编写的。

甚至自动完成功能也会输入正确的方法签名。 但是,如果对方法签名执行CMD + Space,则会显示“找不到符号”。

#1楼 票数:2 已采纳

从Sergiy Salyuk 在这里

添加指定的初始值设定项时,Swift会使派生类的客户端无法访问继承的初始值设定项。 它看起来类似于C ++中的私有继承,在C ++中,继承的方法/数据被隐式移动到“私有”类部分。 原因很简单:如果有一个自定义的初始化程序,则您的类可能需要该初始化程序来构造“不变式”类。 但是有一个错误:如果您创建派生自UITableViewController的类并添加调用super.init(style :)的自定义初始化程序,它将因使用未实现的初始化程序'init(nibName:bundle :)'而失败

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

  ask by Spentak translate from so

未解决问题?本站智能推荐:

1回复

Swift:奇怪的XCode行为,在NSArray的子​​类中需要初始化程序

问题背景:我有一个类是NSArray的子​​类,不是直接但它是。 结构或多或少像MyClass -> Class1 -> Class2 -> NSArray 。 除MyClass之外的所有东西都在Objective-C中,MyClass在Swift中。 它运行良好,直到
2回复

Swift对象初始化(类工厂方法,默认初始化,方便初始化)

嗨,我想弄清楚在Swift中使用对象的最佳模式。 我认为我使用初始化器,方便和默认都是正确的...但是类工厂方法会发生什么? 我试图创建一个简单的类Person和子类Student,只有很少的属性和方法。 这是最正确的方法吗? 如果我想添加一个类工厂方法怎么办? 会是这样的事情还
1回复

J2Objc:无法使用生成的代码通过Swift初始化对象

我在Bridging-Header.h中: Swift编译器-代码生成也已更新,在“构建设置”下具有对该文件的引用。 虽然桥头文件单独编译并与项目一起运行,但是一旦我尝试初始化一个对象,就像在AppDelegate.swift中那样: 我收到以下错误: 有什么想法出了什么问题?
1回复

为现有目标C+Swift项目添加单元测试

我有一个现有的iOs项目,我想向其中添加一个单元测试目标。 我要测试的类既有目标c又有Swift。 我设法创建了一个测试目标,该目标允许我通过将实现swift文件添加到测试目标来仅测试swift代码。 但是,一旦导入或使用导入目标c代码的类,则在构建测试目标时会遇到Linker问题:
2回复

从Objective-C初始化Swift故事板

我正在尝试在Swift中向旧的Objective-C应用添加新的故事板: 使用Swift故事板: 我总是出错: 捆绑NSBundle <... / Developer / CoreSimulator / Devices / 753636C1-ABB5-4D6E-B184-
1回复

迅速进行iOS单元测试[关闭]

我打算使用MVC或VIPER架构来使用。 如何进行单元测试? 如何针对不同的设计模式进行单元测试? 应该测试所有方法还是仅测试非私有方法?
1回复

无法从swift访问objective-c方法。桥设置和obj-c类实例化

这是我的第一个IOS应用程序,所有这些都很顺利。 我的代码在Swift中 ,我需要在我的应用程序中使用Obj-C中的Gold Raccoon FTP库: https : //github.com/albertodebortoli/GoldRaccoon 我导入了Gold Raccoon文件
1回复

viewDidAppear和viewDidLoad初始化位置太晚了

我希望在应用程序中加载时更新故事板中的 UIView(并从故事板实例化)。 我需要以动态方式放置一些图标(界面构建器还不允许我这样做)。 但是,如果我将代码放在 viewDidAppear 或 viewDidLoad 中,它似乎被调用为时已晚。 这是视图加载时的前几秒或两秒发生的情况: 然后稍后它会