在我的应用程序中,我需要根据一些用户操作显示和隐藏,我已经完成了以下操作
在界面定义中,添加了类似的视图
@interface MyWnd : NSWindowController {
MyCustomView1 *pCtmView1;
MyCustomView2 *pCtmView2;
}
在源文件中有以下相关方法
-(void)CreateSubViews{
NSRect subViewRect = [self GetSubViewRect];
pCtmView1 = [[ MyCustomView1 alloc]initWithFrame:subViewRect]
pCtmView2 = [[ MyCustomView2 alloc]initWithFrame:subViewRect]
initially both view will be hidden
[pCtmView1 setHidden:TRUE];
[pCtmView2 setHidden:TRUE];
[[self window] view addSubView:pCtmView1];
[[self window] view addSubView:pCtmView2];
}
-(void)ShowSubView:(int)viewId{
if(viewId == 0 ){
[pCtmView1 setHidden:FALSE];
[pCtmView1 setNeedDisplay:YES];
}
if(viewId == 1 ){
[pCtmView2 setHidden:FALSE];
[pCtmView2 setNeedDisplay:YES];
}
}
在Init应用程序中我正在调用ShowSubView:0并且它正常工作, 但是依赖于一些用户操作,我将调用ShowSubView:1并且不显示任何内容。 我可以在gdb中看到EXEC_BAD_ACCESS 请指导我,我是否需要做更多的事情才能显示视图
谢谢
答案 0 :(得分:1)
当你的应用程序崩溃时,请查看调试器窗口 - 它会告诉你应用程序在崩溃时正在做什么。
您可能希望停止调试器并在Instruments的Zombies工具下重新运行您的应用程序。当崩溃是因为你发送了一个死对象(这可能是80%的时间在Cocoa中的原因),Zombies工具会告诉你是什么对象以及杀死它的对象。