gpt4 book ai didi

objective-c - 如何摆脱 'undeclared selector' 警告

转载 作者:IT老高 更新时间:2023-10-28 12:16:54 26 4
gpt4 key购买 nike

我想在一个 NSObject 实例上使用选择器而不需要实现协议(protocol)。例如,如果调用它的 NSObject 实例支持,则应该设置一个错误属性的类别方法。这是代码,代码按预期工作:

if ([self respondsToSelector:@selector(setError:)])
{
[self performSelector:@selector(setError:) withObject:[NSError errorWithDomain:@"SomeDomain" code:1 userInfo:nil]];
}

但是,编译器没有看到任何带有 setError: 签名的方法,所以它给了我一个警告,对于包含 @selector(setError:) 的每一行片段:

Undeclared selector 'setError:'

我不想声明一个协议(protocol)来消除这个警告,因为我不希望所有可能使用它的类来实现任何特殊的东西。按照惯例,我希望他们拥有 setError:方法或属性。

这可行吗?怎么样?

干杯,
EP

最佳答案

另一种选择是禁用警告:

#pragma GCC diagnostic ignored "-Wundeclared-selector"

您可以将此行放在出现警告的 .m 文件中。

更新:

它也适用于 LLVM,如下所示:

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wundeclared-selector"

... your code here ...

#pragma clang diagnostic pop

关于objective-c - 如何摆脱 'undeclared selector' 警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6224976/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com