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