1
我有这个类标识和一个字符串的实例字典与字符串作为键。我想通过一个字符串访问其中的一个实例并改变它的一些属性。我试图使用switch语句根据字符串的值来访问字典中的实例。字符串快速类字典
class Identity {
let provider: String
let uid: String?
let token: String?
let name: String?
init(provider: String){
self.provider = provider
self.uid = nil
self.token = nil
self.name = nil
}
}
var identities = [String:Identity]()
identities["twitter"] = Identity(provider: "twitter")
identities["twitter"].uid = "131241241241"
identities["twitter"].name = "@freedrull"
let provider: String = "twitter"
var i: Identity? {
switch provider {
case "twitter":
return identities["twitter"] as Identity?
case "facebook":
return identities["facebook"] as Identity?
case "soundcloud":
return identities["soundcloud"] as Identity?
default:
return nil
}
}
if i != nil {
i.name = "tony"
}
我收到一个错误,关于为“tony”分配i.name
。我需要以某种方式将i
转换成身份证吗?我认为它已经是了。
我相信你也可以这样做:'i?.name =“tony”'也没有3行代码。 – Oxcug
@theMonster当然,我会把它扔进去,为什么不呢? – matt
http://www.apeth.com/swiftBook/ch03.html#_optional – matt