【发布时间】:2016-12-29 17:35:44
【问题描述】:
好吧,我不知道这里发生了什么。我在下面有一个字符串字典:
var animals = ["max": "z", "Royal": nil] //store key pairs
如果不打印“可选”,我将无法打印键值对中的值的值。
我尝试过使用 ! !! 并转换为字符串以及以下内容:
var animalsToReturn = [String]()
if animals[selected]! != nil
{
if let pairName = animals[selected]
{
print("\(pairName)")
print("has pair",selected, animals[selected]!)
//trying to append to another array here
animalsToReturn.append("\(animals[selected]!)")
animalsToReturn.append(selected)
}
}
else {
print("no pair")
}
我检查以确保该值不为零,因此如果我打开它不会崩溃。但这就是打印的内容,并且 Optional 这个词被附加到我的另一个数组中:
【问题讨论】:
-
字典中的显式
nil值是无稽之谈,因为nil值意味着缺少键,根据定义,您可以通过分配nil来删除键。 -
您有一个字典,其值为
Optional<String>,因为您将nil存储为一个值。因此,当您没有得到nil时,您必须双重展开,而且正如vadian 所说,您遇到了nil已经是未找到标记的困难。如果是nil,最好不要将其存储在字典中!顺便说一句,Apple 有一篇关于这个主题的非常好的博客文章:developer.apple.com/swift/blog/?id=12 这讨论了如何制作不同的未找到标记。