2012-12-27 4 views
0

잘 실행되는 간단한 그리기 프로젝트의 창에 배경색을 추가하고 빌드를 성공했습니다. 그런 다음 즐거움이 시작되었습니다 : 런타임 오류가 콘솔 창에 나타납니다. Apple docs와 Google에서는 도움이되지 않았습니다. 다른 드로 프로젝트에서 같은 일이 일어 났을 때, 나는 도움을 청해야한다는 것을 알았습니다.Window 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 :에 몇 개의 베 지어 경로를 만들고 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 : 런타임 오류가 발생하지 않았습니다.

경로 코드에서 경로가 올바르게 할당되지 않고 삽입되지 않았습니다. 프로젝트가 setBackground : 코드가 추가 될 때까지 올바르게 실행되었지만. 이상한!

죄송합니다. 너무 길기 때문에 경로 코드를 묶지 않았습니다.

새로운 프로젝트를 시작하고 한 번에 한 장씩 천천히 제작하여 실수를 발견했습니다.