2011-01-22 10 views
0
내 응용 프로그램에서

내가 그서브 뷰 보이기와 숨기기

@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]; 
} 
} 

초기화 응용 프로그램에서 내가 ShowSubView 호출 오전 : 1 아무것도 내가 gdb를
안내하십시오에서 볼 수 & EXEC_BAD_ACCESS을 표시되지 않습니다 : 0과 잘, 작동하지만 일부 사용자 동작에 의존, 내가 ShowSubView를 호출합니다 나, 내가보기

감사를 표시하는 것이 더 많은 일을해야합니까

+0

나중에 setNeedsDisplay를 호출하지 마십시오. 또한 TRUE와 FALSE 대신 YES와 NO를 사용해야합니다. 그것은 중요하지 않지만 대회입니다. – Maz

+0

그것은'EXEC_BAD_ACCESS'가 아니라'EXC_BAD_ACCESS'입니다. 'EXC'는 "예외"를 나타내며, 여기서는 마흐 커널 예외를 의미합니다. 즉, 응용 프로그램이 충돌했습니다. 또한,'ShowSubview :'를 각보기마다 하나씩 두 개의 메소드로 나눌 수 있습니다. if 문의 사슬은 나를 긴장하게 만든다. 저자 (당신)가 분실 한 지점이나 지점이 무엇인지 궁금합니다. –

답변

1

앱 충돌을 표시하려면 어떻게해야합니까, 디버거 창을 보면, 추락했을 때 앱이 무엇을하고 있었는지 알 수 있습니다.

아마도 디버거를 멈추고 Instruments 's Zombie 악기에서 앱을 다시 실행하고 싶을 것입니다. 충돌이 여러분이 죽은 물체 (코코아에서 아마도 80 %의 원인 일 것입니다)를 알리기 때문에 발생하면 좀비 계기는 어떤 물체인지와 물체를 죽였는지를 알려줍니다.

관련 문제