Иногда я хочу остановить запуск моего приложения Какао, как мне остановить его в init? - PullRequest
0 голосов
/ 27 октября 2009

Я просто хочу выйти так быстро, как только возможно, до загрузки перьев. Я попытался [NSApp stop:self], но это не сработало. Есть ли лучший способ, чем получить мой процесс и убить его?

(Я знаю, что это странная вещь. Это по уважительной причине.)

Ответы [ 4 ]

3 голосов
/ 27 октября 2009
[[NSRunningApplication currentApplication] terminate];

Apple Docs здесь . Вы также можете использовать forceTerminate. Вы также можете воспользоваться предложением nall , но оно будет работать только в том случае, если вы сможете выполнить работу, чтобы проверить, нужно ли завершить приложение в main(). В противном случае вам нужно будет сделать что-то еще в соответствии с тем, что я предложил.

3 голосов
/ 27 октября 2009

Не зная больше, я бы сказал, поместите проверочный код в main() перед вызовом NSApplicationMain

int main(int argc, char **argv)
{
    if(shouldExit() == YES)
    {
        exit(exitCode);
    }

    return NSApplicationMain(argc, (const char **) argv);
}
1 голос
/ 27 октября 2009

Если вы можете обнаружить, что хотите легко выйти, изменение функции main() в вашем приложении - самое быстрое место:

int main(int argc, char **argv)
{

  id pool = [[NSAutoreleasePool alloc] init]; //needed if shouldExit() uses Cocoa frameworks

 @try {
    if(shouldExit())  {
      exit(0); //appropriate exit code, depending on whether this "fast" exit is normal or exceptional
    }
  }
  @finally {
    [pool drain];
  }

  return NSApplicationMain(argc, (const char **) argv);;
}
0 голосов
/ 27 октября 2009

Это должно работать:

[[NSApplication sharedApplication] terminate: nil];

Ссылка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...