objective-c – 退出应用程序的方法之间的区别:exit(),NSAppNSApplication终止

objective-c – 退出应用程序的方法之间的区别:exit(),NSAppNSApplication终止,第1张

概述我查找了如何在线退出应用程序,我发现了许多相互矛盾的答案.不同的人提出以下建议,每个都有不同的原因: exit(0);[NSApp terminate:self];[NSApp terminate:nil];[[NSApplication sharedApplication] terminate:self]; 作为Objective-C的新手,所有这些对我来说都很合理.每种方法何时最适 我查找了如何在线退出应用程序,我发现了许多相互矛盾的答案.不同的人提出以下建议,每个都有不同的原因:
exit(0);[NSApp terminate:self];[NSApp terminate:nil];[[NSApplication sharedApplication] terminate:self];

作为Objective-C的新手,所有这些对我来说都很合理.每种方法何时最适合使用?

解决方法 所有这些:
[NSApp terminate:self];[NSApp terminate:nil];[[NSApplication sharedApplication] terminate:self];

做同样的事. NSApp是一个保存应用程序对象的全局变量. [NSApplication sharedApplication]返回应用程序对象,如果这是第一次调用,则创建它然后返回它.如果您正在考虑退出应用程序,这几乎肯定不是第一次打电话.

-terminate:方法忽略参数(sender).它需要一个参数的唯一原因是它是一个动作方法,这是动作方法的一般形式.

请注意,-terminate:不会简单地退出应用程序.如果实现,它将调用app delegate的-applicationShouldTerminate:方法.根据返回代码,代表可以取消终止或推迟决定.如果决定延期,则应用程序将以特殊模式运行,等待它.

最后,如果应用程序(最终)终止,NSApplication将发布NSApplicationWillTerminateNotification通知.如果应用程序委托实现-applicationWillTerminate:,那么将通过发布该通知来调用它.代表可以做一些最后的清理工作.除了委托之外,该通知的任意其他观察者都希望有机会进行清理.

调用exit(0)不提供任何机会.

总结

以上是内存溢出为你收集整理的objective-c – 退出应用程序的方法之间的区别:exit(),NSApp / NSApplication终止全部内容,希望文章能够帮你解决objective-c – 退出应用程序的方法之间的区别:exit(),NSApp / NSApplication终止所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1243237.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-06
下一篇2022-06-06

发表评论

登录后才能评论

评论列表(0条)

    保存