我试图让一个字符串属性显示不同的语言,如果条件。最后一条语句显示错误!我如何获得会员价值?斯威夫特,我怎么能得到一个属性
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。没有必要重新发明轮子。 –