gpt4 book ai didi

swift - 无法将类型 'String' 的值转换为预期的参数类型 '_?'

转载 作者:搜寻专家 更新时间:2023-11-01 06:27:13 25 4
gpt4 key购买 nike

所以我在 Swift 泛型方面苦苦挣扎。我正在尝试创建在不同模块中定义的结构的实例。该结构的属性具有通用类型。

模块代码:

public struct MyModuleResponse<T> {
let payload: T?
}

主要目标代码:

@import MyModule
....
let payload = "Something"
let result = MyModuleResponse(payload: payload)

这会导致错误:

Cannot convert the value of type 'String' to expected argument type '_?'

如果我在主目标中声明结构的相同版本:

public struct MyOwnResponse<T> {
let payload: T?
}

let payload = "Something"
let result = MyOwnResponse(payload: payload)

没有错误并按预期构建。

我的设置:

  • Xcode 10.0
  • swift 4.2

示例项目可以在这里找到:https://github.com/cameroncooke/generics

任何可以帮助我理解这里发生的事情的人都会非常感激。

还有助于了解 Swift 中 type _ 的含义,_ 代表什么。错误消息非常模棱两可,并没有真正提供任何线索。

最佳答案

正如 Dávid 所说,payload 变量必须是可选的。

Swift 初始化程序默认保护级别是内部。您需要将 MyModuleResponse 初始化程序的保护级别设置为 public

public init(payload: T?) {
self.payload = payload
}

关于swift - 无法将类型 'String' 的值转换为预期的参数类型 '_?',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52737832/

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