我正在尝试将String与文字进行比较。调试时,似乎两个值都是" goToMCFDailySchedule3"比赛。然而,执行流似乎是跳过if块。有什么想法吗?
println("value of the segue is: \(segue.identifier)")
if segue.identifier? == "goToMCFDailySchedule3" {
// Not entering here
}
执行结果是:
value of the segue is: Optional("goToMCFDailySchedule3")
(lldb)
我不知道为什么println显示为Optional。我想这与String Optionals的性质有关。
答案 0 :(得分:2)
你不需要吗?在segue标识符的末尾,试试这个:
if segue.identifier == "goToMCFDailySchedule3" {}
//已编辑
如果日志显示标识符是可选的,请尝试使用感叹号打开它:
segue.identifier!
答案 1 :(得分:1)
标识符返回一个可选值,因为segue可能有或没有标识符名称。您应该尝试在比较之前解包返回的可选值。
这样做:
if let identifier = segue.identifier {
// Do the comparisons
}
这段代码让你知道标识符是否确实有值,如果没有,程序不会尝试将“它的值”与任何东西进行比较,并将传递if声明。