为什么我的NSColor扩展不会看到CGColor?

时间:2016-08-04 13:28:40

标签: swift extension-methods swift-extensions nscolor cgcolor

这令我感到困惑......我正在尝试为NSColor创建一个便利初始化程序,它使CGColor成为一个,但由于某些原因,它只是拒绝承认{{1}存在!我导入了CGColor,为了理智我还导入了Cocoa甚至CoreGraphics但仍然没有运气!

All the imports I should need, but CGColor is not found

谁能告诉我我做错了什么?清洁和重建无济于事......

2 个答案:

答案 0 :(得分:4)

正如评论中已经说过的, NSColor有一个init(cgColor:)初始值设定项 使你的问题过时。

但是因为你问为什么它不能编译: 原因是NSColor有一个CGColor 属性,与CGColor类型冲突。 作为解决方法,可以使用CGColorRef别名:

extension NSColor {

    convenience init(_ cgColor: CGColorRef) {
        // ...
    }
}

正如Eric Aya所说,Xcode 8 beta 4不存在该问题。原因是NSColor属性已重命名为cgColor,并且与CGColor不冲突再打一次,

答案 1 :(得分:2)

Xcode在这里显然行为不端。解决方法:在签名中使用完整类型。

convenience init(_ cgColor: CoreGraphics.CGColor)