在 Swift 中匹配数据类型
Posted
技术标签:
【中文标题】在 Swift 中匹配数据类型【英文标题】:Matching data type in Swift 【发布时间】:2019-10-24 13:52:01 【问题描述】:我正在使用 BeaconKit 来检测附近的信标。
我想检查检测到的信标是否为AltBeacon
类型。由于我使用的匹配表达式,我的代码显示错误。
if beacon.beaconType == AltBeacon
print("Detected an AltBeacon")
这是我收到的错误消息
二元运算符
==
不能应用于Int
' 和AltBeacon.Type
类型的操作数
我可以改用什么来纠正我的匹配表达式!谢谢你
【问题讨论】:
Checking if an object is a given type in Swift的可能重复 【参考方案1】:你试过了吗
if beacon.beaconType is AltBeacon
print("Detected an AltBeacon")
或者,您可以检查
if let beacon.beaconType as? AltBeacon
print("Detected an AltBeacon")
else
// handle
【讨论】:
实际上根据源代码,if
表达式的计算结果总是false
。【参考方案2】:
错误很明显。 beaconType
是 Int
。除了Int
两种可能的解决方案:
找出AltBeacon
的整数值(2只是一个例子)并比较
if beacon.beaconType == 2 ...
由于AltBeacon
是Beacon
的子类,请检查实例的类型
if beacon is AltBeacon ...
【讨论】:
以上是关于在 Swift 中匹配数据类型的主要内容,如果未能解决你的问题,请参考以下文章
Firebase iOS Swift 致命错误:NSArray 元素无法匹配 Swift Array 元素类型
NSArray 元素无法匹配 Swift Array 元素类型
错误:“模式无法匹配 'URLRequest' 类型的值”在 swift 中