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

arc*_*att 5 objective-c ios swift

有没有一种简单的方法可以做到这一点,我错过了?现在我这样做:

let doesConformNumber: NSNumber = NSNumber(unsignedChar: UTTypeConformsTo(utiCF, typeCF))
if doesConformNumber.boolValue {
    return true
}
Run Code Online (Sandbox Code Playgroud)

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

let testBool: Bool = UTTypeConformsTo(utiCF, typeCF)
Run Code Online (Sandbox Code Playgroud)

我得到错误'布尔'不能转换为'布尔'

任何人都有更清洁的方式进行此转换?

Mar*_*n R 5

UTTypeConformsTo()返回a Boolean,它是一个类型别名Int8,不能直接转换为Bool.最简单的方法是

let testBool : Bool = UTTypeConformsTo(utiCF, typeCF) != 0
Run Code Online (Sandbox Code Playgroud)

其中类型注释实际上不是必需的:

let testBool = UTTypeConformsTo(utiCF, typeCF) != 0
Run Code Online (Sandbox Code Playgroud)