BOOL 与 Swift 4.1 中的 Bool 不兼容
BOOL is incompatible with Bool in Swift 4.1
当覆盖 Objective-C class 的 Swift 子 class 时,我收到一条消息说:
Property type 'BOOL' (aka 'bool') is incompatible with type 'Boolean' (aka 'unsigned char') inherited from 'ChildClass'
我尝试使用其他布尔类型,但它不起作用。
知道如何在 Swift
中正确覆盖 Objc BOOL
Swift代码(subclass):
override var myVar: Bool {
get {
return something ? true : myVar
}
set {
myVar = newValue
}
}
对象父声明:
@property(atomic) Boolean isLoading;
Swift 出现警告的桥接头:
SWIFT_CLASS("_TtC6Module30ChildClass")
@interface ChildClass : ParentClass
@property (nonatomic) BOOL myVar; //<----- Here
@end
在 ObjC 中,BOOL 和 bool 是不同的(BOOL 是一个带符号的字符,而 bool - 又名 C bool- 是一个无符号字符)。 Boolean 也是 unsigned char 的 typedef,C bool 也是如此。
你能把你的 objC 属性 改成 BOOL 吗?
如果不是,则使用 swift 类型 'CBool'.
当覆盖 Objective-C class 的 Swift 子 class 时,我收到一条消息说:
Property type 'BOOL' (aka 'bool') is incompatible with type 'Boolean' (aka 'unsigned char') inherited from 'ChildClass'
我尝试使用其他布尔类型,但它不起作用。
知道如何在 Swift
中正确覆盖 Objc BOOLSwift代码(subclass):
override var myVar: Bool {
get {
return something ? true : myVar
}
set {
myVar = newValue
}
}
对象父声明:
@property(atomic) Boolean isLoading;
Swift 出现警告的桥接头:
SWIFT_CLASS("_TtC6Module30ChildClass")
@interface ChildClass : ParentClass
@property (nonatomic) BOOL myVar; //<----- Here
@end
在 ObjC 中,BOOL 和 bool 是不同的(BOOL 是一个带符号的字符,而 bool - 又名 C bool- 是一个无符号字符)。 Boolean 也是 unsigned char 的 typedef,C bool 也是如此。 你能把你的 objC 属性 改成 BOOL 吗? 如果不是,则使用 swift 类型 'CBool'.