【问题标题】:Swift - Operator == Cannot be applied to two Int operandsSwift - 运算符 == 不能应用于两个 Int 操作数
【发布时间】:2015-06-09 18:52:55
【问题描述】:

这把我吓坏了,而且非常烦人。我以前也遇到过类似的问题,但是不知道怎么解决的。

所以,我有这个条件

for jfa:Dictionary<String, AnyObject> in jfaDict {
    if Int(jfa[JobType.JobNoKey]) == jobNo
    {
        //Some stuff to do here
    }
}

JobType.JobNoKey 是一个字符串,而 jobNo 是一个 Int

我收到以下错误:

二元运算符 '==' 不能应用于两个 Int 操作数

这是什么意思?

【问题讨论】:

  • 这是一个糟糕的错误消息。如果您希望我们提供解决方案,您需要包含更多信息,例如 jfa.JobNoKey 的类型。

标签: ios swift


【解决方案1】:

你需要先解开jfa[]

if jfa[JobType.JobNoKey] as? Int == jobNo {
    //Some stuff to do here
}

【讨论】:

  • 在这种情况下,jfa[JobType.JobNoKey] 是一个隐式展开的可选项,所以删除“!”来自“as!”。
  • 好的,所以上面的解决方案确实有效。我有另一种情况,在这个情况之后用“&&”链接,这实际上是导致问题的原因。 (给出同样的错误错误)。非常感谢您的帮助。
【解决方案2】:

在进行比较之前先尝试将类型转换为Int

if let value = jfa[JobType.JobNoKey] as? Int {
  //value has an Int now
  if value == jobNo
  {
    //Some stuff to do here
  }
} else {
//casting as Int failed, AnyObject could not be converted to Int
//Some other stuff to do here
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多