Swift - 如何让UIView,UILabel和UIImageView之间类型互相转化

简介: Swift - 如何让UIView,UILabel和UIImageView之间类型互相转化

和上一篇博文一样,这个问题同样出在自定义tabbar里面,上一篇中判断是不是某类型拿到了UIView上放着的UIImageView和UILabel,要想对后者作修改肯定要变换类型,按照Object的尿性,网上各种变换,不一一列出,都没用,后来博主就在那里根据自己知道的知识来尝试,结果成了,看代码:


原Object-C代码:

UIImageView * imageView=(UIImageView *)[view.subviews objectAtIndex:0];
UILabel * label=(UILabel *)[view.subviews objectAtIndex:1];

这样的用法想必大家都不陌生,但是在Swift中怎么用呢,不要急,看下面:

let imageView = view.subviews[0] as! UIImageView
let label = view.subviews[1] as! UILabel

下面对于as?和as!来进行解释:

    首先它们都是用来转换类型的
    其次,as?提供了一种类似于容错的机制,如果可以转换成功就转换成后面对应的类型,否则为nil,as!的‘!’在前面我们知道有强制解析的意思,在这里也是强制转换,在运行中可能会出现错误而系统崩溃的情况,不过我们一般用都是可以确定类型的,如果崩溃,记得检查类型。
    还有就是Swift中对类型的匹配非常严格,一定要谨慎使用。


目录
打赏
0
0
0
0
2
分享
相关文章
|
9月前
|
在Swift编程语言中,浮点数类型
在Swift编程语言中,浮点数类型
104 6
在Swift编程语言中,集合类型`Set`
在Swift编程语言中,集合类型`Set`
79 2
|
9月前
|
在Swift编程语言中,整数类型
在Swift编程语言中,整数类型
116 1
34 Swift为了协议 关联类型
Swift为了协议 关联类型
85 0
Swift 是苹果公司开发的现代编程语言,具备高效、安全、简洁的特点,支持类型推断、闭包、泛型等特性,广泛应用于苹果各平台及服务器端开发
Swift 是苹果公司开发的现代编程语言,具备高效、安全、简洁的特点,支持类型推断、闭包、泛型等特性,广泛应用于苹果各平台及服务器端开发。基础语法涵盖变量、常量、数据类型、运算符、控制流等,高级特性包括函数、闭包、类、结构体、协议和泛型。
68 2
|
3月前
|
Swift 泛型-扩展泛型类型
Swift 泛型-扩展泛型类型
48 2
|
3月前
|
Swift 泛型-类型约束
Swift 泛型-类型约束
48 1
Swift 可选(Optionals)类型
10月更文挑战第24天
48 2
【Swift开发专栏】Swift中的集合类型:数组、字典与集合
【4月更文挑战第30天】本文探讨Swift的三种内置集合类型:数组、字典和集合。数组是有序元素集合,支持动态大小调整和类型安全;字典是无序键值对,适用于快速查找;集合是无序不重复元素集合,适合检查元素存在性和集合运算。理解这些特性和用法能提升Swift编程效率。
80 1

热门文章

最新文章

相关课程

更多
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等