我在运行良好的简单绘图项目的窗口中添加了背景颜色,并且构建成功。然后开始了乐趣:控制台窗口中出现运行时错误。我在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。这些都行不通。我希望我能找到一些示例来说明如何实现它。所有帮助将不胜感激。
答案 0 :(得分:0)
不,setBackground:没有导致运行时错误。
在路径代码中,虽然项目正确运行直到添加了setBackground:代码,但路径未正确分配和引入。奇怪!
对不起,我没有在我的问题中附上路径代码,因为它太长了。
我通过开始一个新项目并慢慢地建立它来找到我的错误,一次一件。