Cocoa 응용 프로그램에 응용 프로그램 자체 내에서 종료하도록 어떻게 알 수 있습니까?

StackOverflow https://stackoverflow.com/questions/1659177

  •  11-09-2019
  •  | 
  •  

문제

나는 코코아 응용 프로그램을 자체적으로 종료하도록 알리는 좋은 방법을 찾고 있습니다. 이것이 생산 코드에 사용되지 않을 것임을 확신하십시오. 하나의 테스트를 실행하고 디버깅 중에 응용 프로그램을 닫는 쉬운 방법을 찾고 있습니다.

나는 그것을 발견했다 exit(0); 앱을 닫지 만 모든 일반적인 응용 프로그램 종료 절차를 우회하고 있으며 모든 것을 유지하고 싶습니다.

기본적으로 사용자가 메뉴에서 "Quit"을 당기는 것처럼 작업을 원하지만 테스트를 마친 후 자동으로 발생하기를 원합니다.

내 코드는 현재 다음과 같습니다.

#if (SUPERFANCY_TESTING_MODE)
    [self doSomething];
    exit(0); // <-- I need something better to go here
#endif
도움이 되었습니까?

해결책

당신은 당신의 앱이 적어도 일부 시간에 살해 될 것이라고 확신 할 수 있습니다. 따라서, 방어는 나와 같은 출구입니다 exit(0); ~이다 필수의.

그러나 nsapplication은 -terminate: 방법.

[NSApp terminate: nil]; 당신이 원하는 것을해야합니다.

나는 일반적으로 그것을 통해 게시하는 것이 좋습니다 -performSelector:afterDelay: 이벤트 루프를 통한 다음 패스의 상단에서 발생하는 데 0.0의 지연이 발생합니다.

예시:

[NSApp performSelector:@selector(terminate:) withObject:nil afterDelay:0.0];
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top