Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/102.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios @testable import出现奇怪的编译错误_Ios_Swift_Xctest - Fatal编程技术网

Ios @testable import出现奇怪的编译错误

Ios @testable import出现奇怪的编译错误,ios,swift,xctest,Ios,Swift,Xctest,我刚刚在一个新项目中添加了一些单元测试。通常我使用@testable import导入生产代码,因此我可以测试非公共方法: @testable import My-Project import XCTest final class MyTests: XCTestCase { func testOne() { // ... } } 但是,我看到了一些奇怪的编译错误,这是我以前从未见过的: Tests.swift:1:25: Consecutive statements

我刚刚在一个新项目中添加了一些单元测试。通常我使用
@testable import
导入生产代码,因此我可以测试非公共方法:

@testable import My-Project
import XCTest

final class MyTests: XCTestCase {
   func testOne() {
       // ...
   }
}
但是,我看到了一些奇怪的编译错误,这是我以前从未见过的:

Tests.swift:1:25: Consecutive statements on a line must be separated by ';'
Tests.swift:1:25: Expected expression after unary operator
Tests.swift:1:25: Expressions are not allowed at the top level
Tests.swift:1:18: No such module 'My'
我已经检查并再次检查了所有内容,但无法找出产生此编译错误的原因

我缺少什么?

项目名称(因此内部模块名称)包含一个破折号(-)字符

要解决此问题,请执行以下操作:

  • 在Xcode项目导航器中选择顶级项目文件图标
  • 按enter键重命名项目
  • 从项目名称中删除破折号
  • 按照提示进行最终重构
  • 更新
    @testable import…
    语句以反映新模块

  • 项目和目标名称可以包含特殊字符(如空格或破折号),但模块名称不能包含。默认情况下,Xcode通过用下划线替换无效字符从目标名称生成模块名称

    因此,在你的情况下

    @testable import My_Project
    
    会解决这个问题。或者,在目标的生成设置中指定自定义“产品模块名称”

    不需要重命名整个项目(或目标)