无法将“X"类型的值转换为预期的参数类型“X" [英] Cannot convert value of type 'X' to expected argument type 'X'

查看:24
本文介绍了无法将“X"类型的值转换为预期的参数类型“X"的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

8的Xcode和斯威夫特今天有真悲哀让我:(

Xcode 8 and Swift 3 made me really sad today :(

请看一看,告诉我您是否遇到过这样的事情,以及是否可以修复它.我一直在尝试不同的解决方案,其中包括:

Please have a look and tell me if you ever had something like this and if it's possible to fix it. I've been trying different solutions, among them:

  1. Cmd + Shift + K
  2. Cmd + Shift + Option + K
  3. 删除派生数据
  4. 更改使用的结构(它是我代码中的嵌套结构),将其展平,更改为非常基本的结构

更新 1:

这是代码(虽然我认为这不一定是与我的实现有关的问题),它在我的测试目标中:

Here's the code (although I think it's not necessarily a problem related to my implementation), it's in my tests target:

let viewModelStub: Quiz.NewRoundDetails.ViewModel = Quiz.NewRoundDetails.ViewModel(roundNumber: "", score: "", proposedAnswerParts: [
            Quiz.NewRoundDetails.ViewModel.AnswersForComponent(answers: []),
            Quiz.NewRoundDetails.ViewModel.AnswersForComponent(answers: []),
            Quiz.NewRoundDetails.ViewModel.AnswersForComponent(answers: [])])

_ = viewController.view
viewController.display(roundModel: viewModelStub)

这里是结构:

struct Quiz {
    struct NewRoundDetails {
        struct Response {
            let roundNumber: Int
            let score: Int
        }
        struct ViewModel {
            let roundNumber: String
            let score: String
            let proposedAnswerParts: [Quiz.NewRoundDetails.ViewModel.AnswersForComponent]

            struct AnswersForComponent {
                let answers: [String]
            }
        }
    }
}

在 viewController 中,事情看起来像这样:

And in viewController things look like this:

func display(roundModel: Quiz.NewRoundDetails.ViewModel) {
    ...
}

我觉得没什么特别的.我刚刚发现了一件事 - 代码在应用目标端运行良好,但在测试目标端不起作用.

Nothing so unusual I think. I have just discovered one more thing - the code works fine on the app target side, it doesn't work on tests target.

我没有更多想法 atm... 你能帮我吗?我也创建了雷达

I don't have more ideas atm... Can you help me? I have created radar as well

推荐答案

好的,我知道了...

我已经使用 @testable 导入了我的应用程序模块,并且我已经将带有模型类的 .swift 文件添加到测试目标.可能是 .已创建 Quiz.NewRoundDetails.ViewModel 而不是 .Quiz.NewRoundDetails.ViewModel

I've imported my app's module with @testable and also I've had added my .swift file with model classes to the test target. Probably <MyTestModule>. Quiz.NewRoundDetails.ViewModel have been created instead of <MyAppModule>. Quiz.NewRoundDetails.ViewModel

这篇关于无法将“X"类型的值转换为预期的参数类型“X"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆