干净地将Objective-C布尔转换为Swift Bool?

时间:2014-08-29 03:04:41

标签: ios objective-c swift

有一种简单的方法可以解决这个问题吗?现在我这样做是这样的:

let doesConformNumber: NSNumber = NSNumber(unsignedChar: UTTypeConformsTo(utiCF, typeCF))
if doesConformNumber.boolValue {
    return true
}

如果我尝试像这样做一个简单的演员:

let testBool: Bool = UTTypeConformsTo(utiCF, typeCF)

我收到错误'布尔'不可转换为'布尔'

任何人都有更干净的方式进行此转换?

1 个答案:

答案 0 :(得分:5)

UTTypeConformsTo()会返回Boolean,这是Int8的类型别名,而不是直接 可转换为Bool。最简单的方法是

let testBool : Bool = UTTypeConformsTo(utiCF, typeCF) != 0

其中实际上不需要类型注释:

let testBool = UTTypeConformsTo(utiCF, typeCF) != 0