Swift 测试链接器错误
Swift Tests linker error
我有一个 Swift 测试,它使用了我编写的一些 Objective-C 代码:
class ParserServiceTest: QuickSpec {
override func spec() {
var x : MyClass? // this works
x = MyClass() // this does not
}
}
当我尝试构建项目时收到错误消息:
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_MyClass", referenced from:
__TTSf4d___TTSf4g___TFC11MyProjectTests17ParserServiceTest4specfS0_FT_T_ in ParserServiceTest.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
您需要在测试目标中包含 objective-c。在您的目标列表中,select“...测试”目标,然后是 "Build Phases" 窗格。查看 "Compile Sources" 或 "Link Binary With Libraries"(取决于您的代码是来自源代码还是库),并确保您需要的所有文件都在那里。您需要为可执行项目做的大部分事情,您也需要为测试项目做。
在“文件检查器实用程序”面板(右侧面板)中,您还可以将目标成员资格添加到单个文件。
我有一个 Swift 测试,它使用了我编写的一些 Objective-C 代码:
class ParserServiceTest: QuickSpec {
override func spec() {
var x : MyClass? // this works
x = MyClass() // this does not
}
}
当我尝试构建项目时收到错误消息:
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_MyClass", referenced from:
__TTSf4d___TTSf4g___TFC11MyProjectTests17ParserServiceTest4specfS0_FT_T_ in ParserServiceTest.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
您需要在测试目标中包含 objective-c。在您的目标列表中,select“...测试”目标,然后是 "Build Phases" 窗格。查看 "Compile Sources" 或 "Link Binary With Libraries"(取决于您的代码是来自源代码还是库),并确保您需要的所有文件都在那里。您需要为可执行项目做的大部分事情,您也需要为测试项目做。
在“文件检查器实用程序”面板(右侧面板)中,您还可以将目标成员资格添加到单个文件。