Swift 错误 - 方法不覆盖其超类中的任何方法
Posted
技术标签:
【中文标题】Swift 错误 - 方法不覆盖其超类中的任何方法【英文标题】:Swift Error - Method Does not override any method from its superclass 【发布时间】:2018-03-22 14:27:46 【问题描述】:我遇到了一个问题,当我试图重写一个函数时,它告诉我超类中没有方法。子类在 XCTest 中。当我在常规项目中进行子类化时,它可以正常工作,但 XCTest 由于某种原因无法正常工作下面是代码
超类
class BackupServerCell: UITableViewCell
@IBOutlet var serverNameLabel: UILabel!
@IBOutlet var serverDescriptionLabel: UILabel!
func configCell(with server: VeeamBackupServer)
子类 - 位于 XCTest 文件中
class MockBackupServerCell : BackupServerCell
var configCellGotCalled = false
override func configCell(with server: VeeamBackupServer)
configCellGotCalled = true
【问题讨论】:
尝试清理项目,然后构建并运行,然后再次运行测试 【参考方案1】:当您处理测试目标时,有时需要导入您的主项目。
假设您的项目名为“MyAwesomeProject”,只需在您的测试文件中添加这一行:
@testable 导入 MyAwesomeProject
要获得这样的东西:
import XCTest
@testable import MyAwesomeProject
class TestStaticQueries: XCTestCase
// Add your test methods here.
【讨论】:
我确实有这个在我班上名列前茅。奇怪的是,当我开始键入时,自动完成功能会正确放置。但是在我输入之后就会发生编译器错误。 @MatthewWandell,嗯...我建议您的最后一件事是尝试将您的测试目标添加为 BackupServerCell 类目标成员资格的成员。【参考方案2】:@DDelforge,部分正确。我必须将 BackupServerCell 类添加到测试目标。不知道为什么这个类是不同的,但是嘿,它有效。
谢谢大家
【讨论】:
将生产代码添加到测试目标是错误的。这表明测试目标没有正确链接到您的生产目标。以上是关于Swift 错误 - 方法不覆盖其超类中的任何方法的主要内容,如果未能解决你的问题,请参考以下文章
方法不会覆盖其超类 swift 3.0 错误中的任何方法 [重复]
supportedInterfaceOrientations 方法不会覆盖其超类中的任何方法
覆盖 UICollectionView 的 UIPanGestureRecognizer
从Swift 3.2迁移到Swift 4我使用autosavesInPlace收到错误