我做了一个Swift扩展来使用像iOS一样的框架,但是在使用它时无法编译

时间:2014-07-25 01:05:41

标签: swift swift-extensions

我对NSView进行了此扩展,以便更轻松地使用视图。

import Cocoa

public extension NSView {
    var invertedFrame: NSRect {
    get {
        return NSRect(x: frame.origin.x,
                      y: superview.bounds.height - frame.origin.y,
                  width: bounds.size.width,
                 height: bounds.size.height)
    }
    set {

        self.frame = NSRect(x: newValue.origin.x,
                            y: superview.bounds.height - newValue.origin.y - newValue.height,
                        width: newValue.width,
                       height: newValue.height)
    }
    }
}

但每当我尝试使用它时,我都会收到编译时错误...

Command /Applications/Xcode6-Beta4.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift failed with exit code 254

但是,如果我将计算变量剪切并粘贴到类实现中,它可以正常工作。

我不确定为什么会这样。我的代码有问题吗?任何人都能做到这一点吗?

2 个答案:

答案 0 :(得分:0)

你的属性设置器没有将newValue声明为方法参数,但是编译器显然崩溃了,而不是告诉你。请记住,仅在set属性声明中找到裸protocol

答案 1 :(得分:0)

我不确定哪个更新修复此问题,但在Xcode 6 beta 5中它运行正常。所以这只是一个编译器错误。