我有一些旧的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的初始化器的参数。