String cast vs String unwrapping

时间:2015-11-13 06:17:11

标签: ios swift

我正在尝试比较字符串值。字符串值存储在Dictionary中。 当我解开这样的数据时:

let type:String = basicBlk["type"] as! String

并比较

print (type.lowercaseString == "minion") 结果是 true

如果我像这样投票:

let type:String = String(basicBlk["type"])

并比较

print (type.lowercaseString == "minion") 结果是 false

我想了解究竟有什么区别。

1 个答案:

答案 0 :(得分:1)

这个

let type:String = String(basicBlk["type"])

将可选值转换为如下所示的字符串:

Optional("Minion")

当您将该字符串转换为小写字母时,它看起来像:

optional("minion")

问题是您正在创建可选值的字符串表示形式,并且在结果值中包含字符串“Optional(”和字符串“)”。

只需为两个示例打印type,您就会明白我的意思。