У меня есть приложение Какао, которое взаимодействует с сервером и отображает графический интерфейс. Если происходит фатальная ошибка, я показываю предупреждение и выхожу. Я хотел бы установить для статуса выхода ненулевое значение, чтобы отразить, что произошла ошибка, для облегчения взаимодействия с некоторыми другими инструментами на основе UNIX.
К сожалению, мне не удалось найти хороший способ сделать это - NSApplication, похоже, не имеет никакого способа установить статус выхода. На данный момент я создал подкласс NSApplication и добавил exitStatus
ivar (который я установил в своем делегате приложения при необходимости), а затем переопределил -terminate:
, чтобы он вызывал exit(exitStatus)
. Это работает нормально, но мне это кажется немного странным, не говоря уже о том, что мне может не хватать чего-то важного, что стандарт terminate:
делает за кулисами. Я не могу вызвать [super terminate:sender]
в моем методе подкласса, потому что это exit()
s не дает мне возможности установить статус.
Я упускаю что-то очевидное?