Ios ';额外参数';id';通话中';结构敏捷

Ios ';额外参数';id';通话中';结构敏捷,ios,xcode,swift,struct,swift2,Ios,Xcode,Swift,Struct,Swift2,我在Swift中有一个结构,如下所示: import Foundation let invalidCharsForFirstCharacter : [Character] = [ "\\", "_", "-", "!", "'" , "§", "$", "%", "&", "/", "(", ")", "=", "?", ".", ":", ",", ";" ] struct Event { var id : String { set {

我在Swift中有一个结构,如下所示:

import Foundation

let invalidCharsForFirstCharacter : [Character] = [
     "\\", "_", "-", "!", "'" , "§", "$", "%", "&", "/", "(", ")", "=", "?", ".", ":", ",", ";"
]

struct Event {
    var id : String {
        set {
            if invalidCharsForFirstCharacter.contains(newValue[newValue.startIndex]) {
                self.id = ""
            } else {
                self.id = newValue
            }
        }
        get {
            return self.id
        }
    }

    var name : String
}
当我现在想用一个调用来初始化结构时,比如
let testEvent=Event(id:“id123”,name:“name”)
Xcode给了我一个错误“调用中的额外参数'id'

我使用Xcode版本7.0(7A218)和Swift 2.0。

您在调用中得到消息额外参数“id”,因为您的结构没有带有此
id
参数的初始值设定项


但是在您的情况下,您不能添加此init,因为您的
id
变量有一个使用
self
的setter,并且在结构完全初始化之前,您不能使用
self

谢谢@EricD.,请指出它。我删除getter和setter并添加一个'didSet'块:

didSet {
        for char in invalidCharsForFirstCharacter {
            if id.hasPrefix("\(char)") {
                id = ""
                break
            }
        }
    }