我试图找出字符“S”或“C”是否出现在字符串中。字符串中至少有一个,但不一定同时有两个。
let S = codeZ.characters.index(of: "S")
let C = codeZ.characters.index(of: "C")
if (C == nil) || S < C {
nextView.sequential_flag = true
nextView.continuous_flag = false
}
else if S == nil || (C < S) {
nextView.sequential_flag = false
nextView.continuous_flag = true
}
我得到一个错误:二进制运算符“根据我对斯威夫特的经验,这通常意味着如果错了的话,还会有别的事情发生。
我也试过把if语句改成下面这个。
if (C == nil) || S?.encodedOffset < C?.encodedOffset {
nextView.sequential_flag = true
nextView.continuous_flag = false
}
我得到一个错误:二进制运算符“非常感谢您对我们的帮助,谢谢。
最佳答案
您应该检查S
是否nil
,并为C
提供一个回退值。然后可以比较这两个非可选值。
if let S = S, S.encodedOffset < (C?.encodedOffset ?? Int.max) {
nextView.sequential_flag = true
nextView.continuous_flag = false
}