我試圖讓一個字符串屬性顯示不同的語言,如果條件。最後一條語句顯示錯誤!我如何獲得會員價值?斯威夫特,我怎麼能得到一個屬性
struct EN {
let hello = "Hello!"
}
struct CN {
let hello = "Hi!"
}
var stringObj:Any?
var language = "CN"
if language == "EN" {
stringObj = EN()
}
if language == "CN" {
stringObj = CN()
}
print(stringObj!) // "CN(hello: "Hi!")\n" on playground
print(stringObj!.hello) // error! has no member "hello"
你的stringObj是任何類型的...任何?沒有hello屬性...你將不得不施放你的Object ......或者使用一個協議作爲支持你的hello的超類協議 –
@LeoDabus他真的應該在這裏定義一個通用協議。請參閱Palle回答... –
我認爲他應該使用NSLocalizedString。沒有必要重新發明輪子。 –