我可以在AnyObject中使用元组吗?

流行内核

我想知道我是否可以做这样的事情:

override func someCocoaFunc(someParameter:AnyObject?) {
    if let parameter = someParameter as! Tuple {
        let parameterType = parameter.1
        if parameterType == "Heads up, this is an Int" {
            print(parameter.0 + 1) //prints 2
        }
        else {
             //fallback
        }
    }
}
let myTuple = (1,"Heads up, this is an Int")
someCocoaFunc(myTuple)

显然,这是行不通的,因为Tuple不是课程,或者至少不是我可以强制使用的课程。有没有办法使它正常工作,如果可以的话如何?如果不是,确定类型的最佳方法是AnyObject什么?我试过:

if parameter is Bool {
//some code
}
else if parameter is Int {
//some code
}

但这似乎不起作用,我认为是因为Bool只是Typealias'd Int之类的东西?因此,总而言之,我可以在这里使用元组吗?如果没有,我该怎么办?为了添加一些上下文,我正在编写一个用于不同目标的类,因此我无法确定该值是什么,只是它是Int还是Bool。

字节数

您不能在这里使用元组,因为它们是复合类型,因此没有类。

的问题if是,为了兼容BoolInt转换NSNumber为该属性,它具有boolValueandintegerValue属性,如果您将其强制转换则会调用属性。所以0和1是等效于truefalse,因此不明确的。

作为解决方案,我建议创建一个将两个值都保存为的类Optionals

class Holder {
    let boolValue: Bool?
    let intValue: Int?
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Swift中,我可以在元组中使用函数类型吗?

来自分类Dev

Swift可以在元组中使用nil值吗?

来自分类Dev

我可以使用元组作为映射的键吗?

来自分类Dev

我可以在WPF中使用NotifyIcon吗?

来自分类Dev

我可以在服务中使用$ interval吗?

来自分类Dev

我可以在SUMPRODUCT中使用INDIRECT吗?

来自分类Dev

我可以在Oracle中使用UTILS吗?

来自分类Dev

我可以在枚举中使用枚举吗?

来自分类Dev

我可以在JSDOC中使用变量吗

来自分类Dev

我可以在JTA中使用Hibernate吗?

来自分类Dev

我可以在C ++中使用Tk吗?

来自分类Dev

我可以在DrawerLayout中使用SwipeRefreshLayout吗?

来自分类Dev

我可以在TFVC中使用.gitignore吗?

来自分类Dev

我可以在TideSDK中使用webrtc吗?

来自分类Dev

我可以在HTML中使用变量吗?

来自分类Dev

我可以在ARC中使用retain吗?

来自分类Dev

我可以在php中使用php吗

来自分类Dev

我可以在C ++中使用Tk吗?

来自分类Dev

我可以在 <urlset> 中使用 <sitemap> 吗?

来自分类Dev

我可以在Swift中扩展元组吗?

来自分类Dev

我可以在Android中使用自我修改吗?

来自分类Dev

我可以在Ubuntu中使用我的NTFS数据分区吗?

来自分类Dev

我可以在我的C程序中使用LXC库吗?

来自分类Dev

我可以在我的单列内存中使用双列内存吗?

来自分类Dev

我可以在android中使用默认图标吗?

来自分类Dev

我可以在Perl中使用Exporter导出结构吗?

来自分类Dev

我可以在构造函数中使用访问器方法吗?

来自分类Dev

我可以在“别名”定义中使用Spring Expression Language吗?

来自分类Dev

我可以在函数定义中使用函数typedef吗?

Related 相关文章

热门标签

归档