UIColor swift 扩展 w/ class 从 Objective-C 访问
UIColor swift extension w/ class access from Objective-C
请问如何从 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)
}
}
}
假设您正在使用 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)
}
}
}
您可以使用 Scheme1.darkGray
从 Objective-C 访问 darkGray
。 Objective-C不支持嵌套类,所以Scheme1
在顶层导出。
如果您真的想要以命名空间的方式访问Scheme1
,即使是从Objective-C,您也可以使darkGray
成为一个实例属性 并在您的扩展中存储 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()
}
您可以使用 UIColor.scheme1.darkGray
访问 darkGray
。
请问如何从 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)
}
}
}
假设您正在使用 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)
}
}
}
您可以使用 Scheme1.darkGray
从 Objective-C 访问 darkGray
。 Objective-C不支持嵌套类,所以Scheme1
在顶层导出。
如果您真的想要以命名空间的方式访问Scheme1
,即使是从Objective-C,您也可以使darkGray
成为一个实例属性 并在您的扩展中存储 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()
}
您可以使用 UIColor.scheme1.darkGray
访问 darkGray
。