首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何从其他Swift文件导入Swift文件?

如何从其他Swift文件导入Swift文件?
EN

Stack Overflow用户
提问于 2014-06-04 13:35:35
回答 12查看 175K关注 0票数 161

我只想包含另一个文件中的Swift类,比如它的test

PrimeNumberModel.swift

代码语言:javascript
复制
import Foundation

class PrimeNumberModel { }

PrimeNumberModelTests.swift

代码语言:javascript
复制
import XCTest
import PrimeNumberModel  // gives me "No such module 'PrimeNumberModel'"

class PrimeNumberModelTests: XCTestCase {
    let testObject = PrimeNumberModel()  // "Use of unresolved identifier 'PrimeNumberModel'"    
}

这两个swift文件都在同一个目录中。

EN

回答 12

Stack Overflow用户

回答已采纳

发布于 2014-06-05 02:56:28

我也有同样的问题,在我的XCTestCase文件中,但不是在常规的项目文件中。

要摆脱:

无法解析的标识符'PrimeNumberModel‘的

用法

我需要在import文件中测试基本模块。在我的例子中,我的目标项目名为'myproject‘,我添加了import myproject,这个类被识别出来了。

票数 133
EN

Stack Overflow用户

发布于 2014-08-25 09:26:45

更新Swift 2.x、3.x、4.x和5.x

现在您不需要将public添加到要测试的方法中。在较新版本的Swift中,只需要添加@testable关键字。

PrimeNumberModelTests.swift

代码语言:javascript
复制
import XCTest
@testable import MyProject

class PrimeNumberModelTests: XCTestCase {
    let testObject = PrimeNumberModel()
}

而且你的内部方法可以保持Internal

PrimeNumberModel.swift

代码语言:javascript
复制
import Foundation

class PrimeNumberModel {
   init() {
   }
}

请注意,即使使用@testableprivate (和fileprivate)符号也不可用。

Swift 1.x

这里有两个来自Swift的相关概念(如Xcode6beta6)。

Swift

  • 您不需要导入Swift类,但需要导入外部模块,Swift中默认的Access Control级别为

考虑到测试是在PrimeNumberModelTests.swift上的另一个目标上进行的,您需要对包含要测试的类的目标执行import操作,如果您的目标名为MyProject,则需要将import MyProject添加到PrimeNumberModelTests

PrimeNumberModelTests.swift

代码语言:javascript
复制
import XCTest
import MyProject

class PrimeNumberModelTests: XCTestCase {
    let testObject = PrimeNumberModel()
}

但是这还不足以测试您的类PrimeNumberModel,因为默认的访问控制级别是Internal Access,所以您的类对于测试包是不可见的,因此您需要将其设置为Public Access以及您想要测试的所有方法:

PrimeNumberModel.swift

代码语言:javascript
复制
import Foundation

public class PrimeNumberModel {
   public init() {
   }
}
票数 71
EN

Stack Overflow用户

发布于 2014-06-04 13:50:59

Documentation中,它说Swift中没有import语句。

只需使用:

代码语言:javascript
复制
let primNumber = PrimeNumberModel()
票数 51
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24029781

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档