我有一些旧的Swift代码,这些代码曾经在.append用来动态构建数据结构的地方编译和工作。升级到较新的一些编译器版本后,我得到了可怕的“调用中的额外参数''”错误。我将代码简化为:

struct  EHSearch {
    let EHcategory : String = ""
    let EHname : String = ""
}

var  myEHSearch = [EHSearch]()

// Call to dynamically append the results
// Extra argument: 'EHcategory' in call

myEHSearch.append(EHSearch(EHcategory: "Food", EHname: "Joes Crab Shack"))

到目前为止,我在寻找导致这一变化的变化方面一无所获,因此请在此处寻求指导。

最佳答案

因为您的结构中有let
像这样定义您的结构:

struct  EHSearch {
var EHcategory : String = ""
var EHname : String = ""
}

如果struct中包含常量,则在创建新的结构实例时不能提供它们的初始值。自动生成的成员初始化器不接受let成员作为struct的初始化器的参数。

09-25 21:43