我有一个类公开了一些方法,它们的实现是由一个内部对象提供的.

我正在使用前向调用在运行时将方法调用分派给内部对象,但XCode正在抱怨,因为它找不到已声明方法的实现.

我还发现了其他一些类似的问题,但所有这些问题都通过改变设计得以解决.

我不想在这里讨论设计,但如果有人对它有一些建议,我有一个open question关于代码审查,这更适合这种讨论.

我的问题是,是否存在关闭XCode中Incomplete Implementation警告的方法.

推荐答案

通过添加

  #pragma clang diagnostic ignored "-Wincomplete-implementation"

略高于@implementation

希望这有帮助

EDIT

在 comments 中被告知这对某人不起作用,并找出原因是因为这是一个不同的警告,他们得到了我做了一些游戏,并能够解决这个问题,所以我想我会更新这个答案,包括他们的,以及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并添加一个编译器标志,这样您就可以添加-WprotocolWincomplete-implementation或任何您需要的编译器标志.

希望这个更新能帮助所有需要的人,我会更新我的答案.

EDIT 2

我在这方面做了更多的挖掘,偶然发现了Clang Compliler User's Manual个,所以我认为这将是有趣的,并有助于任何人在这个领域仍然有问题.

我还发现了另一种方法,你可以使用这#pragma diagnostic ignores个,也就是说,你可以使用pushpop个,所以如果你想忽略文件的某个特定部分,而不是全部,那么你可以做以下事情

    #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

pushpop似乎与我迄今为止try 过的所有diagnostic ignores都有效.

另一个是

    #pragma clang diagnostic ignored "UnresolvedMessage"
    #pragma GCC diagnostic ignored "UnresolvedMessage"

suppress 未使用变量的方法是

    #pragma clang diagnostic push
    #pragma clang diagnostic ignored "-Wunused-variable"
        NSString *myUnusedVariable;
    #pragma clang diagnostic pop

GCC的版本是

    #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

性能 Select 器泄漏

    #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,你可以找到entire list here

Objective-c相关问答推荐

iOS9 - 这个应用程序正在从后台线程修改自动布局引擎 - 在哪里?

Objective C:给定一个Class id,我可以判断这个类是否实现了某个协议吗?还是有一定的 Select 器?

如何在for (id item in items)objective-c 循环中获取数组索引?

在objective-c中isa是什么意思?

iOS 块和对自身的强/弱引用

在 viewDidAppear 之前无法正确设置框架

何时使用静态字符串与 #define

将子视图添加到 UIButton

Interface Builder 中的 IBOutletCollection 集排序

失go 对 UITextView 的关注时隐藏键盘

检测代码是否在 Objective-C 的主线程上运行的正确方法是什么? (iOS)

如何测试生产推送通知?

如何在 iPhone SDK 中使用自定义字体?

如何在情节提要场景中嵌入自定义视图 xib?

两个 NSDate 对象之间的区别 - 结果也是一个 NSDate

添加/删除带有动画的 UITableViewCell?

我可以在 Objective-C switch 语句中声明变量吗?

判断文件是否存在于路径中

点击手势识别器 - 哪个对象被点击了?

如何使用图像和标签制作自定义 UIBarButtonItem?