设置Cocoa应用程序的退出状态的任何好方法?

use*_*441 4 cocoa objective-c nsapplication

我有一个Cocoa应用程序,它与服务器交互并显示GUI.如果发生致命错误,我会显示警告并退出.我想将退出状态设置为非零值以反映发生错误,以便与其他一些基于UNIX的工具进行交互.

不幸的是,我一直无法找到一个好方法 - NSApplication似乎没有办法设置退出状态.目前,我已经将NSApplication子类化并添加了一个exitStatusivar(我在必要时在我的app委托中设置),然后重写-terminate:以便调用它exit(exitStatus).这很好,但对我来说似乎有点蹩脚,更不用说我可能会遗漏标准terminate:在幕后做的重要事情.我无法调用[super terminate:sender]我的子类方法,因为那exit()没有给我机会设置状态.

我错过了一些明显的东西吗

bbu*_*bum 5

简而言之,您可以调用exit(3)并完全绕过标准的Cocoa拆卸机制,也可以不设置退出代码(不会像您描述的那样跳过箍).

正如Jason所说,在应用程序拆除过程中,系统没有任何关键因素.另一方面,你的应用程序可能有一些关键的东西,但这完全是因为你的应用程序的实现(默认情况下不是Cocoa中的任何东西).

但是,真的,不要这样做 - 用户的爱强迫戒掉你的应用程序,你的应用程序应该被设计为不会因灾难性而失败.