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