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