NSTextAlignment无法在Objective-C中表示
在我的Swift课程中,我将变量定义为NSTextAlignment无法在Objective-C中表示,objective-c,swift,bridge,Objective C,Swift,Bridge,在我的Swift课程中,我将变量定义为 @objc var textAlignment: NSTextAlignment? { didSet { if textAlignment != nil { label.textAlignment = textAlignment! } } } 这是错误的!因为编译器抱怨它不是一个可以用Objective-C表示的类型 但以下是正确的 var textAlignment: NSTe
@objc var textAlignment: NSTextAlignment? {
didSet {
if textAlignment != nil {
label.textAlignment = textAlignment!
}
}
}
这是错误的!因为编译器抱怨它不是一个可以用Objective-C表示的类型
但以下是正确的
var textAlignment: NSTextAlignment? {
didSet {
label.textAlignment = textAlignment!
}
}
或
因此,如果我将方法公开给objective-C,它就不能是可选值。但是,如果我在内部使用它,我可以!是因为它是一个标量值,而在Objective-C中,我们无法将其表示为nil吗
我的目的只是想让它不是强制性的。
NSTextAlignment
是一个枚举,而不是一个类-textAlignment
变量不能作为可选变量映射到目标c,因为这要求它是指向对象类型的指针
尝试:
或者,如果您真的需要它是可选的,您可以将它作为一个
NSNumber
公开给Objective C,包装textAlignment.rawValue
,或者在不需要值时设置为nil。是的,我想是这样。它只是目标c中的一个标量值。我的目的只是想让它不是强制性的。
@objc var textAlignment: NSTextAlignment {
didSet {
label.textAlignment = textAlignment
}
}
@objc var textAlignment: NSTextAlignment {
...
}