Swift:将AnyObject与`is`语法进行比较

时间:2014-06-12 21:58:22

标签: ios swift

我想检查我的发件人是否是Xyz-Object

override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) {
let senderIsBonusProduct = sender is Xyz

但我收到以下错误:

  

无法从类型' Int1'中找到用户定义的转化。输入' Bool'

3 个答案:

答案 0 :(得分:4)

表达式sender is Xyz返回Bool,具体取决于sender是否为Xyz类型。似乎有一个编译器错误导致sender is Xyz实际上返回的Int1没有被Bool内部强制转换。

解决方法是:

let bonus = (sender is Xyz ? true : false)

答案 1 :(得分:2)

您也可以将其更改为

if let senderOfTypeXYZ = sender as? Xyz {
    // senderOfTypeXYZ is available with the expected type here
 }

答案 2 :(得分:1)

Beta 3版本不再需要解决方法,您可以将is运算符与其他逻辑运算符组合使用。