首页 > 解决方案 > 在单独文件中定义的 Swift 结构是否需要初始化程序?

问题描述

我在一个单独的 swift 文件中定义了一个简单的结构,如下所示:

import AppKit

//Declaring a new struct for Company

public struct CompanyStruct {
    var idCompany: Int
    var company: String
    var compType: String
}

但是,当我尝试使用此结构时,它会找到该结构:

var c = CompanyStruct

我可以选择它,但是打开括号时没有提示任何参数。如果我将结构初始化为:

import AppKit

//Declaring a new struct for Company

public struct CompanyStruct {
    var idCompany: Int
    var company: String
    var compType: String


    init(idCompany: Int, company: String, compType: String) {
        self.idCompany = idCompany
        self.company = company
        self.compType = compType
    }
}

然后,如果我在说 View Controller 中使用结构,它就可以正常工作

我以为您不必初始化结构?是因为我在单独的文件中定义了结构吗?

标签: swiftstruct

解决方案


不,您不需要为结构添加初始化程序。默认情况下,它具有成员明智的初始化程序。这是一个 xCode 错误。当它发生时,只需使用YourStruct.init它就会显示自动完成。之后,您可以删除 init 部分,它将适用于其余的结构。


推荐阅读