如何从objective-c访问我的darkGray颜色?
@objc
extension UIColor
{
@objc
public class Scheme1: NSObject {
static var darkGray: UIColor! {
return UIColor(red: 16.0/255.0, green: 16.0/255.0, blue: 19.0/255.0, alpha: 1.0)
}
}
}
答案 0 :(得分:2)
假设您使用的是Swift 4 @objc
推断,darkGray
必须声明为@objc
:
@objc
extension UIColor
{
@objc
public class Scheme1: NSObject {
@objc static var darkGray: UIColor! {
return UIColor(red: 16.0/255.0, green: 16.0/255.0, blue: 19.0/255.0, alpha: 1.0)
}
}
}
您可以使用darkGray
从Objective-C访问Scheme1.darkGray
。 Objective-C不支持嵌套类,因此Scheme1
将在顶层导出。
如果确实想要以命名空间的方式访问Scheme1
,即使是从Objective-C,您也可以使darkGray
成为实例属性并存储{{1}的实例在您的扩展程序中:
Scheme1
您可以使用@objc
extension UIColor
{
@objc
public class Scheme1: NSObject {
@objc var darkGray: UIColor! {
return UIColor(red: 16.0/255.0, green: 16.0/255.0, blue: 19.0/255.0, alpha: 1.0)
}
}
@objc public static var scheme1 = Scheme1()
}
访问darkGray
。