我试图找出角色" 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
}
我收到错误:二元运算符&#39;&lt;&#39;不能应用于两个&#39; String.CharacterView.Index?&#39; (又名&#39;可选&#39;)操作数
根据我对swift的经验,这通常意味着其他错误。 我也尝试将if语句更改为以下内容。
if (C == nil) || S?.encodedOffset < C?.encodedOffset {
nextView.sequential_flag = true
nextView.continuous_flag = false
}
我得到了错误:二元运算符&#39;&lt;&#39;不能适用于两个&#39; Int?&#39;操作数。
非常感谢有关如何做到这一点的任何帮助,谢谢。
答案 0 :(得分:1)
您应该检查S
是否nil
,并向C
提供后备值。然后,您可以比较两个非可选值。
if let S = S, S.encodedOffset < (C?.encodedOffset ?? Int.max) {
nextView.sequential_flag = true
nextView.continuous_flag = false
}