热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

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

I want to check if my sender is an Xyz-Object

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

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

but I get following error:

但我得到以下错误:

Could not find a user-defined conversion from type 'Int1' to type 'Bool'

找不到从“Int1”类型到“Bool”类型的用户定义转换

3 个解决方案

#1


4  

The expression sender is Xyz is returning a Bool depending on if sender is of type Xyz. It appears that there is a compiler bug whereby sender is Xyz is actually returning a Int1 that is not getting coerced internally to a Bool.

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

A workaround is:

解决方法是:

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

#2


2  

You can also change it to

您也可以将其更改为

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

#3


0  

Workarounds aren't required anymore with the Beta 3 release and you can combine the is operator with other logical operators.

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


推荐阅读
author-avatar
mobiledu2502861997
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有