【问题标题】:Compile Warnings About Missing @required Protocol Methods NOT Appearing没有出现关于缺少 @required 协议方法的编译警告
【发布时间】:2012-12-11 21:09:11
【问题描述】:

今天早上我正在修改 XCode 4.5.2,想要制作一个表格视图,我自然而然地将 UITableViewDataSourceUITableViewDelegate 协议添加到了我的视图控制器定义中。

#import <UIKit/UIKit.h>

@interface MyViewController : UIViewController <UITableViewDataSource, UITableViewDelegate>

@end

#import "MyViewController.h"

@implementation MyViewController

@end

现在我知道在这个阶段我需要实现UITableViewDataSource 协议的@required 方法,但是出于(可能是TDD)习惯,我决定先执行构建,期望编译器会抛出关于未实现的@required 方法(向我指示要实现哪些方法)。

但是没有编译器发出的任何错误或警告就完成了构建,这让我感到困惑和担心。

所以我意识到这个问题通常是相反的,即“为什么我收到此警告”,而不是“为什么我没有收到此警告”,但这个非常简单的问题确实让我感到困惑。显然我做错了什么,但我不知道是什么。有什么想法可以做到吗?

仅供参考,这是一个新项目,在新 Mac Book 上全新安装 XCode 4.5.2,没有构建/项目设置自定义。

【问题讨论】:

  • 你清理了目标,删除了派生数据并检查了吗?
  • 感谢 Sumanth,我已经尝试过清理并重新启动等。我刚刚尝试清理、退出 XCode、删除项目的 Derived Data 文件夹、重新启动 XCode 并重建,但结果相同。
  • 我也有同样的经历,有人把我联系到这里了。这是我的问题,带有一个最小的测试用例:stackoverflow.com/questions/17453434/…
  • 一种可能的解释是,这两个必需的方法已经在 UIViewController 类中实现了。

标签: objective-c ios xcode compiler-construction


【解决方案1】:

在 XCode 4.5.x 中,有一个选项用于设置不同的警告以显示 (YES/NO)。您可以在 LLVM 4.1 编译器的构建设置编译器警告下检查它。

希望它能解决您的问题。

【讨论】:

  • 感谢您的回复,但我已经检查过,“不完整的 Objective-C 协议”值已设置为 YES。
猜你喜欢
  • 2015-09-19
  • 2019-07-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-16
  • 2018-03-18
相关资源
最近更新 更多