我正在尝试测试我写的课程。我添加了一个新的测试目标,并在那里导入了我正在尝试测试的类的目标。我的代码如下所示:
import XCTest
import TargetContainingClass
class Tests: XCTestCase
{
var myClass = MyClass()
// tests
}
然而,我收到错误:
'MyClass' is not constructible with '()'
MyClass
不包含init()
方法,因此不需要构造任何内容。因此,我不明白我得到的错误。
非常感谢任何帮助。
干杯
答案 0 :(得分:0)
您需要提供init()
的实现方式:
class MyClass {
init () {}
}
Swift文档指出:
“Swift provides a default initializer for any structure or base class that provides
default values for all of its properties and does not provide at least one initializer
itself. The default initializer simply creates a new instance with all of
its properties set to their default values.”
Apple Inc. “The Swift Programming Language.”
但上述情况显然不正确;在行动:
1> class MyClass1 {}
2> MyClass1()
/var/folders/.../expr.DO8uJ4.swift:2:1: error: 'MyClass1' is not constructible with '()'
MyClass1()
^
2> class MyClass {
3. init () {}
4. }
5> MyClass()
$R0: __lldb_expr_3.MyClass = {}
答案 1 :(得分:0)
我首先解决了我的问题,提供了@GoZoner建议的init() {}
实现,然后摆脱Apple Mach-O Linker (id) Error
我必须添加我想要作为编译源测试的类构建阶段。