未申报的类型' NSView'在游乐场

时间:2014-11-09 20:16:15

标签: macos cocoa swift swift-playground

对于OSX Playground,我输入以下代码:

import Cocoa

class PlayView : NSView {

    override func drawRect(dirtyRect: NSRect) {

        let blue = NSColor.blueColor()

        blue.setFill()
        NSRectFill(self.bounds)

    }
}


var view = PlayView(frame: NSRect(x: 0, y: 0, width: 200, height: 200))

然后我得到了这个输出:

Playground execution failed: <EXPR>:12:18: error: use of undeclared type 'NSView'
class PlayView : NSView {
                 ^~~~~~
<EXPR>:14:39: error: use of undeclared type 'NSRect'
    override func drawRect(dirtyRect: NSRect) {
                                      ^~~~~~
<EXPR>:25:28: error: use of unresolved identifier 'NSRect'
var view = PlayView(frame: NSRect(x: 0, y: 0, width: 200, height: 200))
                           ^
<EXPR>:16:20: error: use of unresolved identifier 'NSColor'
        let blue = NSColor.blueColor()
                   ^
<EXPR>:19:9: error: use of unresolved identifier 'NSRectFill'
        NSRectFill(self.bounds)
        ^

这个代码在一个大型Playground崩溃之前就已经开始了,但是现在它完全死了,好像没有导入任何Cocoa类但是我已经导入了Cocoa,并确保为OSX设置了操场。

我也可以在iOS配置的游乐场中创建iOS等效游戏,但它运行正常,但OSX版本已经坏了。

有什么想法吗?

Playground Screen Capture

2 个答案:

答案 0 :(得分:1)

Per Matt的建议(https://stackoverflow.com/a/6247073/341994),我一次一个地完成了他的列表(每次重启XCode),当我删除/ var / folders的内容时,它又开始工作了。< / p>

编辑: 因为在游乐场做很多事情时我经常会这样,我一直在使用:

  

rm -rf&#34; $(getconf DARWIN_USER_CACHE_DIR)/org.llvm.clang/ModuleCache"

并且解决了它

答案 1 :(得分:0)

似乎工作得很好。

enter image description here

也许只是尝试一下新的游乐场文件?