【问题标题】:typealias is not able to use producing Cannot invoke initializer Errortypealias 无法使用产生无法调用初始化程序错误
【发布时间】:2018-12-10 18:05:48
【问题描述】:

我有一个 typealias 如下:

typealias Member = (memberId: Int64?,fullName: String?,photoUrl: String?)

当我这样称呼它时

Member(memberid: 14, fullname: "Nifras", photourl: "Hello")

我遇到了这样的错误

无法使用参数列表为“成员”类型调用初始化程序 type '(memberid: Int64?, fullname: String?, photourl: String?)'

【问题讨论】:

    标签: swift


    【解决方案1】:

    Member 是元组的别名。您正在尝试创建 Member 的实例,例如调用类或结构的初始化程序。

    你想要:

    let someVar: Member = (14, "Nifras", "Hello")
    

    或者您可以使用Member 作为参数类型或返回类型。

    func someFunc(someParam: Member)
    

    func someFunc() -> Member
    

    【讨论】:

      【解决方案2】:

      如果你想使用Member(memberId: 14, fullName: "Nifras", photoUrl: "Hello")语法,你必须创建struct Member

      struct Member {
          memberId: Int64?
          fullName: String?
          photoUrl: String?
      }
      

      您可以阅读有关结构的更多信息https://docs.swift.org/swift-book/LanguageGuide/ClassesAndStructures.html

      【讨论】:

        猜你喜欢
        • 2012-02-26
        • 1970-01-01
        • 1970-01-01
        • 2018-04-04
        • 1970-01-01
        • 2023-03-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多