当覆盖Objective-C类的Swift子类时,我收到一条消息:
物业类型' BOOL' (又名' bool')与类型'布尔'不兼容(又名' unsigned char')继承自' ChildClass'
我尝试使用其他布尔类型,但它无法工作。
知道如何正确覆盖Swift中的Objc BOOL
Swift代码(子类):
override var myVar: Bool {
get {
return something ? true : myVar
}
set {
myVar = newValue
}
}
Objc家长声明:
@property(atomic) Boolean isLoading;
警告出现的Swift桥接标题:
SWIFT_CLASS("_TtC6Module30ChildClass")
@interface ChildClass : ParentClass
@property (nonatomic) BOOL myVar; //<----- Here
@end
答案 0 :(得分:1)
BOOL和bool不一样(BOOL是一个有符号的char,而bool - 又名C bool-是一个unsigned char)。 Boolean也是unsigned char的typedef,因此是一个C bool。 你能将你的objC属性改为BOOL吗? 如果没有,那么使用swift类型&#39; CBool&#39;