Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 干净地将Objective-C布尔值转换为Swift布尔值?_Ios_Objective C_Swift - Fatal编程技术网

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

Ios 干净地将Objective-C布尔值转换为Swift布尔值?,ios,objective-c,swift,Ios,Objective C,Swift,有没有一个简单的方法可以做到这一点,我错过了?现在我是这样做的: let doesConformNumber: NSNumber = NSNumber(unsignedChar: UTTypeConformsTo(utiCF, typeCF)) if doesConformNumber.boolValue { return true } 如果我尝试这样做一个简单的演员阵容: let testBool: Bool = UTTypeConformsTo(utiCF, typeCF) 我发

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

let doesConformNumber: NSNumber = NSNumber(unsignedChar: UTTypeConformsTo(utiCF, typeCF))
if doesConformNumber.boolValue {
    return true
}
如果我尝试这样做一个简单的演员阵容:

let testBool: Bool = UTTypeConformsTo(utiCF, typeCF)
我发现错误“Boolean”不能转换为“Bool”

任何人都有更干净的转换方法吗?

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

let testBool : Bool = UTTypeConformsTo(utiCF, typeCF) != 0
如果实际上不需要类型注释:

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

让testBool=doesConformNumber.boolValue
不够?检查后的答案更清晰,这就是我想要的。注意
UTTypeConformsTo
返回一个CoreFoundation布尔值,
boolean
;Objective-C布尔值是
BOOL
。这个问题很好,总结只是有点误导。但对于搜索来说,这可能是一种很好的方式请注意,在这个问题提出后的几年中的某个时候,苹果改变了Swift公开
UTTypeConformsTo
的方式,因此它返回了一个本地Swift
Bool
。现代Swift不需要转换。布尔和布尔有什么区别?@jawanam:
Boolean
是一种“历史Mac类型”,定义为
Int8
Bool
是Swift布尔类型。比较。所以只要可能,它就应该使用布尔对布尔?