use*_*000 10 cocoa objective-c
我查看了如何在线退出应用程序,我发现了许多相互矛盾的答案.不同的人提出以下建议,每个都有不同的原因:
exit(0);
[NSApp terminate:self];
[NSApp terminate:nil];
[[NSApplication sharedApplication] terminate:self];
Run Code Online (Sandbox Code Playgroud)
作为Objective-C的新手,所有这些对我来说都很合理.每种方法何时最适合使用?
Ken*_*ses 19
所有这些:
[NSApp terminate:self];
[NSApp terminate:nil];
[[NSApplication sharedApplication] terminate:self];
Run Code Online (Sandbox Code Playgroud)
做同样的事.NSApp
是一个保存应用程序对象的全局变量.[NSApplication sharedApplication]
返回应用程序对象,如果这是第一次调用,则创建它,然后返回它.如果你正在考虑退出应用程序,这几乎肯定不是第一次打电话.
该-terminate:
方法忽略参数(sender
).它需要一个参数的唯一原因是它是一个动作方法,这是动作方法的一般形式.
请注意,-terminate:
这不会简单地退出应用程序.-applicationShouldTerminate:
如果实现,它将调用app delegate的方法.根据返回代码,代表可以取消终止或推迟决定.如果决定延期,则应用程序将以特殊模式运行,等待它.
最后,如果应用程序(最终)终止,NSApplication
将发布NSApplicationWillTerminateNotification
通知.如果app delegate实现-applicationWillTerminate:
,那么将通过发布该通知来调用该代理.代表可以做一些最后的清理工作.除了委托之外,该通知的任意其他观察者可能希望有机会进行清理.
呼叫exit(0)
没有提供任何机会.
归档时间: |
|
查看次数: |
5144 次 |
最近记录: |