NSApp是否终止:id已弃用?

Geo*_*nos 9 macos cocoa objective-c nsapplication

我一直在寻找如何以编程方式终止我的应用程序.我发现很多人都在使用NSApp terminate:id.

在Xcode terminate:id中交叉.这种方法是否已被弃用?我应该用它来终止我的申请吗?如果没有哪个是正确的方法呢?

更新: 当我说它越过时我的意思的图片: 在此输入图像描述

Mar*_*n R 19

我不认为这terminate是不赞成的.编译器警告的可能原因可能是

[NSApp terminate:sender]
Run Code Online (Sandbox Code Playgroud)

NSApp返回一个通用id,以便编译器不知道terminate实际意味着哪个消息.确实,如果我使用"跳转到定义",Xcode会跳转到

@protocol NSInputServiceProvider
...
- (void) terminate:(id)sender NS_DEPRECATED_MAC(10_0, 10_6);
Run Code Online (Sandbox Code Playgroud)

但是如果你使用等效的代码

[[NSApplication sharedApplication] terminate:sender];
Run Code Online (Sandbox Code Playgroud)

然后编译器警告就消失了.