为什么我的 NSColor 扩展看不到 CGColor?
Why won't my NSColor extension see a CGColor?
这让我感到困惑...我正在尝试为 NSColor
创建一个方便的初始值设定项,它从 CGColor
中创建一个,但出于某些该死的原因,它只是拒绝承认 CGColor
存在!我导入了 Cocoa
,为了理智,我还导入了 CoreGraphics
甚至 CoreGraphics.CGColor
,但仍然没有成功!
谁能告诉我我做错了什么?清理和重建没有帮助...
Xcode 显然在这里行为不端。解决方法:在签名中使用完整类型。
convenience init(_ cgColor: CoreGraphics.CGColor)
正如评论中所说,
NSColor
有一个 init(cgColor:)
初始值设定项,可能
使您的问题过时。
但是既然你问的是为什么它不编译:
原因是 NSColor
有一个 CGColor
属性,这与 CGColor
类型冲突。
作为一种解决方法,可以使用 CGColorRef
别名:
extension NSColor {
convenience init(_ cgColor: CGColorRef) {
// ...
}
}
正如 Eric Aya 所说,Xcode 8 beta 4 不存在此问题。原因是 NSColor
属性 已重命名为 cgColor
,并且不再与CGColor
类型冲突,
这让我感到困惑...我正在尝试为 NSColor
创建一个方便的初始值设定项,它从 CGColor
中创建一个,但出于某些该死的原因,它只是拒绝承认 CGColor
存在!我导入了 Cocoa
,为了理智,我还导入了 CoreGraphics
甚至 CoreGraphics.CGColor
,但仍然没有成功!
谁能告诉我我做错了什么?清理和重建没有帮助...
Xcode 显然在这里行为不端。解决方法:在签名中使用完整类型。
convenience init(_ cgColor: CoreGraphics.CGColor)
正如评论中所说,
NSColor
有一个 init(cgColor:)
初始值设定项,可能
使您的问题过时。
但是既然你问的是为什么它不编译:
原因是 NSColor
有一个 CGColor
属性,这与 CGColor
类型冲突。
作为一种解决方法,可以使用 CGColorRef
别名:
extension NSColor {
convenience init(_ cgColor: CGColorRef) {
// ...
}
}
正如 Eric Aya 所说,Xcode 8 beta 4 不存在此问题。原因是 NSColor
属性 已重命名为 cgColor
,并且不再与CGColor
类型冲突,