我有以下代码:
struct Dare {
var theDare: [[String: AnyObject]] = [
["dare": "Dare1",
"darePerson": true],
["dare": "Dare2",
"darePerson": false],
["dare": "Dare3",
"darePerson": false],
["dare": "Dare4",
"darePerson": true],
["dare": "Dare5",
"darePerson": false]
]
func randomDare() -> Dictionary<String, AnyObject> {
return theDare[Int(arc4random_uniform(UInt32(theDare.count)))]
}
}
如果darePerson == true,我如何检查随机敢?
答案 0 :(得分:1)
在randomDare函数中,您将获得[String: AnyObject]
字典。
var dareDic: Dictionary<String, AnyObject> = randomDare()
然后你可以将这个值转换为Bool(如果让语法在哪里使用swift 1.2):
if let darePerson = dareDic["darePerson"] as? Bool where darePerson == true {
// Do something when true
}
这种技术避免了由于字典错误导致的任何强制解包和未解包的选项失败
答案 1 :(得分:1)
您的检查应该使用字符串下标方法和String参数来完成,因为您的字典键是字符串。此外,既然你确定darePersons退出你的字典,它的价值是Bool,你可以强制打开它们两个
if dare.randomDare()["darePerson"]! as! Bool{
println("dare person is true")
}