Window setBackGround:导致运行时错误

时间:2012-12-27 00:42:20

标签: runtime-error nswindow setbackground

我在运行良好的简单绘图项目的窗口中添加了背景颜色,并且构建成功。然后开始了乐趣:控制台窗口中出现运行时错误。我在Apple文档和Google中找不到任何帮助。当在另一个抽奖项目中发生同样的情况时,我知道我不得不寻求帮助。

以下是我每次进行构建时发生的事情。调试和停止 - 运行1)到4)。 “继续”表示我单击了“继续”图标。它一直没有按顺序犯错。

1)Program received signal:“EXC_BAD_ACCESS".旋转球。路径好的。

继续。 “EXC_BAD_ACCESS。旋转球。路径消失了。背景出现。

2)继续,6次。 “EXC_BAD_ACCESS”。旋转球。路径消失了。背景出现。

3)立即:

2012-12-26 09:53:18.265 bezier triangle[388:a0f] -[NSCFArray stroke]: unrecognized selector sent to instance 0x1005184f0  

2012-12-26 09:53:18.268 bezier triangle[388:a0f] -[NSCFArray stroke]: unrecognized selector sent to instance 0x1005184f0
2012-12-26 09:53:37.846 bezier triangle[388:a0f] -[NSCFArray stroke]: unrecognized selector sent to instance 0x1005184f0
2012-12-26 09:53:37.847 bezier triangle[388:a0f] -[NSCFArray stroke]: unrecognized selector sent to instance 0x1005184f0

没有继续图标。路径好的。没有背景。

4)继续,6次。 “EXC_BAD_ACCESS”。旋转球。没有路径。没有背景。

NSWindow类在initWithRect中创建了几个Bezier路径:并在drawRect:中绘制它们。它运行良好。 我从Apple的Window Programming Guide获得了setBackGround:代码,并将其粘贴到之前空的AppDelegate中。

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
    // Background color
    [window setOpaque:NO]; // YES by default 
    NSColor *semiTransparentBlue =
    [NSColor colorWithDeviceRed:0.0 green:0.0 blue:1.0 alpha:0.5]; 
    [window setBackgroundColor:semiTransparentBlue];    
    window.backgroundColor = NSColor.blueColor;
}

设置断点显示此代码完成后会发生运行时错误。

认为问题可能与其执行时间有关,我将此代码移至initWithRect,然后移至awakeFromNib。这些都行不通。我希望我能找到一些示例来说明如何实现它。所有帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

不,setBackground:没有导致运行时错误。

在路径代码中,虽然项目正确运行直到添加了setBackground:代码,但路径未正确分配和引入。奇怪!

对不起,我没有在我的问题中附上路径代码,因为它太长了。

我通过开始一个新项目并慢慢地建立它来找到我的错误,一次一件。