gpt4 book ai didi

swift - 类型 '...' 的值在赋值中不符合 '...'

转载 作者:行者123 更新时间:2023-11-28 09:23:24 25 4
gpt4 key购买 nike

在一个项目中,我们遇到了一个奇怪的问题,即 xcode 无法获取协议(protocol)。

我们在常规应用程序中定义了以下协议(protocol):

protocol VCDismisser: class {
func dismiss(animated: Bool, completion: (() -> Void)?)
}

extension UIViewController: VCDismisser {}

在我们定义的随机 ViewController 中:

class RandomVC: UIViewController {
lazy var vcDismisser: VCDismisser = self
}

在 XCProject 的测试部分中,我们要定义以下内容:

class MockDismisser: VCDismisser {
var dismissCalled = false
func dismiss(animated: Bool, completion: (() -> Void)?) {
dismissCalled = true
}
}

在 RandomVC 的任何测试用例中,我们都想“注入(inject)”我们的模拟:

func testSuccessfulLoginDismisses() {
let dismisser = MockDismisser()
randomVC.vcDismisser = dismisser
randomVC.viewDidLoad()
mockviewModel.loggedIn.value = LoginState.successful
XCTAssertTrue(dismisser.dismissCalled)
}

XCode 现在变得非常疯狂并且总是告诉我们:

enter image description here

我们在这里做错了什么,我们如何解决 xcode 接受它作为正确类型的问题?

最佳答案

这里的原因在我的问题中并不明显。包含扩展名和协议(protocol)的文件具有测试的目标成员资格和导致 xcode 混淆的应用程序。删除测试的目标成员确实解决了问题。

关于swift - 类型 '...' 的值在赋值中不符合 '...',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50045399/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com