Swift中的达尔文布尔型是什么
我用一些Swift代码编写了Swift中的达尔文布尔型是什么,swift,Swift,我用一些Swift代码编写了Boolean而不是Bool,Xcode让我用DarwinBoolean替换它 问题是,DarwinBoolean到底是什么 与Bool和ObjCBool类型相比有什么区别。 它的目的是什么?不幸的是,除了前一个答案中发布的部分之外,没有关于达尔文布尔运算的真正文档 一般来说,当你想使用数学函数时,可以使用达尔文包,它可以通过基础包分开或访问。 DarwinBoolean的值与正常布尔值相同,对或错。简短回答: Bool是真值的本机Swift类型 DarwinBoo
Boolean
而不是Bool
,Xcode让我用DarwinBoolean
替换它
问题是,DarwinBoolean
到底是什么
与Bool
和ObjCBool
类型相比有什么区别。
它的目的是什么?不幸的是,除了前一个答案中发布的部分之外,没有关于达尔文布尔运算的真正文档 一般来说,当你想使用数学函数时,可以使用达尔文包,它可以通过基础包分开或访问。
DarwinBoolean的值与正常布尔值相同,对或错。简短回答:
Bool
是真值的本机Swift类型
DarwinBoolean
是“历史”C类型Boolean
的快速映射
ObjCBool
是Objective-C类型BOOL
的快速映射
您可以在Swift代码中使用Bool
,除非有其他类型
与现有核心基础的互操作性要求
目标-C功能
有关达尔文布尔的更多信息
:
DarwinBoolean
在Swift中定义为
/// The `Boolean` type declared in MacTypes.h and used throughout Core
/// Foundation.
///
/// The C type is a typedef for `unsigned char`.
public struct DarwinBoolean : BooleanType, BooleanLiteralConvertible {
public init(_ value: Bool)
/// The value of `self`, expressed as a `Bool`.
public var boolValue: Bool { get }
/// Create an instance initialized to `value`.
public init(booleanLiteral value: Bool)
}
是“历史”C类型的快速映射
:
另请参见Xcode 7发行说明:
MacTypes.h中的类型Boolean在以下上下文中作为Bool导入:
允许在Swift和Objective-C类型之间建立桥接
在表示意义重大的情况下,将导入布尔值
作为一种独特的达尔文布尔类型,它是布尔可转换的
并且可以在各种条件下使用(非常类似于ObjCBool类型)。
(19013551)
例如,函数
void myFunc1(Boolean b);
void myFunc2(Boolean *b);
被导入Swift作为
public func myFunc1(b: Bool)
public func myFunc2(b: UnsafeMutablePointer<DarwinBoolean>)
func fileExistsAtPath(_ path: String,
isDirectory isDirectory: UnsafeMutablePointer<ObjCBool>) -> Bool
输入到Swift作为
public func myFunc1(b: Bool)
public func myFunc2(b: UnsafeMutablePointer<DarwinBoolean>)
func fileExistsAtPath(_ path: String,
isDirectory isDirectory: UnsafeMutablePointer<ObjCBool>) -> Bool
func fileExistsAtPath(upath:String,
isDirectory isDirectory:UnsafeMutablePointer)->Bool
此处,BOOL
返回值自动转换为BOOL
,
但是(BOOL*)
保留为非女性化指针
因为它是一个变量的地址