我有一个类暴露一些方法中,它的实现是通过一个内对象提供。
我使用着调用在运行时的方法调用内部对象调度,但Xcode是抱怨,因为它无法找到的申报方法的实现。
我发现SO其他一些类似的问题,但他们都得到解决了设计变更。
我不是说这里有一个关于设计的讨论,但如果任何人有关于它的一些建议,我有一个悬而未决的问题在代码审查,这是更适合这类讨论。
我的问题是这里是一个方法是否关闭Incomplete Implementation
XCode中存在的警告。
我有一个类暴露一些方法中,它的实现是通过一个内对象提供。
我使用着调用在运行时的方法调用内部对象调度,但Xcode是抱怨,因为它无法找到的申报方法的实现。
我发现SO其他一些类似的问题,但他们都得到解决了设计变更。
我不是说这里有一个关于设计的讨论,但如果任何人有关于它的一些建议,我有一个悬而未决的问题在代码审查,这是更适合这类讨论。
我的问题是这里是一个方法是否关闭Incomplete Implementation
XCode中存在的警告。
您可以抑制Incomplete Implementation
加入警告
#pragma clang diagnostic ignored "-Wincomplete-implementation"
略高于@implementation
希望这可以帮助
编辑
在评论被告知,这并没有为别人工作,找出的原因是因为这是他们得到不同的警告我做了一点玩耍,并能解决问题,有这么我想我会后更新这个答案,包括他们和GCC
忽略为好。 因此,对于该问题@Tony
以下应该工作
#pragma clang diagnostic ignored "-Wprotocol"
对于任何想知道的GCC
编译器的版本,它是
#pragma GCC diagnostic ignored "-Wprotocol"
#pragma GCC diagnostic ignored "-Wincomplete-implementation"
我也会让所有这些点diagnotstic ignores
也可以通过将指定每个文件的基础上,设定完成XCODE Project >> Target >> Build Phases >> Compile Sources
并添加一个编译器标志,所以你只想添加-Wprotocol
或Wincomplete-implementation
,你需要或者其他编译器标志。
希望这有助于更新所有,如果再需要我会更新我的答案,包括。
编辑2
我是做多一点挖围绕这个一个跨越来到锵Compliler用户手册 ,所以我认为这将是有趣的,并有助于在这个区域附近仍然有任何问题。
我还发现了另一种方式,你可以使用这些#pragma diagnostic ignores
,那就是你可以push
及pop
他们,所以,如果你想忽略这个文件的特定部分,而不是全部的,那么你可以做到以下几点
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wmultichar"
// And pop the warning is gone.
char b = 'fa';
#pragma clang diagnostic pop
请记住,所有这些#pragma
编译忽略可以使用GCC
,以及因此上面可以
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wmultichar"
// And pop the warning is gone.
char b = 'fa';
#pragma GCC diagnostic pop
在push
和pop
似乎与所有的工作diagnostic ignores
到目前为止,我都试过了。
另外一个是
#pragma clang diagnostic ignored "UnresolvedMessage"
#pragma GCC diagnostic ignored "UnresolvedMessage"
在一个抑制未使用的变量是
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wunused-variable"
NSString *myUnusedVariable;
#pragma clang diagnostic pop
与海湾合作委员会的版本是
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-variable"
NSString *myUnusedVariable;
#pragma GCC diagnostic pop
再过从unavailableInDeploymentTarget无视警告
#pragma clang diagnostic push
#pragma ide diagnostic ignored "UnavailableInDeploymentTarget"
leftEdge.barTintColor = rightEdge.barTintColor = self.toolbar.barTintColor;
#pragma clang diagnostic pop
和performSelector泄漏
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Warc-performSelector-leaks"
[target performSelector:cancelAction withObject:origin];
#pragma clang diagnostic pop
和弃用声明
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
button = [[UIBarButtonItem alloc] initWithTitle:buttonTitle style:UIBarButtonItemStyleBordered target:self action:@selector(customButtonPressed:)];
#pragma clang diagnostic pop
由于DanSkeel
你可以找到这里整个列表
你可以声明一个类类接口中的方法:
@interface MyClass (ForwardedMethods)
- (void)doSomething;
@end
(不为类实现)。 然后,Xcode中不会再抱怨“完全执行”了。