如何在特定行上禁用 xcode 中的警告?

发布于 2024-08-05 08:06:36 字数 165 浏览 5 评论 0原文

我接到一个像这样的电话 [Class method] 并警告说 Class 可能不会 响应“方法”消息。

“方法”消息确实不存在,但我的代码使用未知消息捕获 (使用forwardingTargetForSelector)所以它会运行良好并且它被构建为以这种方式运行。 我怎样才能隐藏这个恼人的警告?

I've got a call like this [Class method] and a warning saying that Class may not
respond to "method" message.

The "method" message does not indeed exist but my code use unknown message catching
(using forwardingTargetForSelector) so it will run fine and it is build to run that way.
How can I hide this annoying warning ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

坏尐絯 2024-08-12 08:06:36

如果您打算向对象发送可能未实现的消息,并且知道将捕获失败,则应该使用调用:

id myClone = [anObject performSelector:@selector(copy)];

这更直接地声明您正在调用可能不存在的方法的意图,并且你对此很满意。这是比抑制警告或伪造方法更清晰的方法。

If you intend to send a possibly-unimplemented message to an object, and you know that you're going to catch failures, you should use the invocation:

id myClone = [anObject performSelector:@selector(copy)];

That declares your intent more directly that you are calling a method that may not exist, and you're cool with that. This is a more clear way to do it than to suppress the warning or fake out the method.

徒留西风 2024-08-12 08:06:36

您可以定义一个声明该方法的类别。在编译时将定义置于范围内可以避免出现警告。像这样的东西

@interface MyClass (ShutUpTheCompilerMethods)
- (void)method;
@end

...

[MyClass method] //no warning here

You could define a category that declares that method. Having the definition in scope at the time of compilation would avoid the warning. Something like

@interface MyClass (ShutUpTheCompilerMethods)
- (void)method;
@end

...

[MyClass method] //no warning here
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文