2012-12-27 88 views
0

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

这里的每一次我做了一个构建&调试和制止发生了什么 - 运行1)〜4)。 “继续”表示我点击了继续图标。它始终以不一致的顺序犯错。

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

继续。 “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 

没有继续图标。路径OK。没有背景。

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。这些都不起作用。我希望我能找到一些例子来说明如何实现这一点。所有的帮助将不胜感激。

回答

0

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

在路径代码的路径没有被分配和妥善inited,尽管该项目正确运行,直到的setBackground:添加代码。奇怪!

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

我发现了自己的错误,开始一个新项目,并慢慢构建它,一次一块。