我使用Xcode 4,定义了一个简单的类接口,并将NSTableViewDelegate和NSTableViewDataSource协议添加到接口定义中。即, @interface富:NSObject的< NSTableViewDelegate,NSTableViewDataSource>当协议方法没有被指定时,为什么我不会收到警告?
在我的构建设置,我已经证实,选择“未完成的Objective-C协议”警告启用(用于调试/任何建筑等),我应该得到NSTableViewDataSource协议所需的非可选方法的编译时警告。然而,我根本没有得到任何警告,但是在运行时我看到日志中的消息中没有定义方法。
任何人都知道为什么?
那么至少委托协议是非正式的,所以不实施的方法应该仍然让代码工作,这意味着你不必实现,这就是为什么你不会得到这样的警告。 – 2011-03-22 22:45:41
某些方法是必需的---这就是为什么我应该在编译时应该得到警告,而不是在运行时。 我不喜欢只是得到运行时警告,如果我可以有编译时警告。所以问题是这是否是一个xcode4错误或者是否有其他事情正在阻止编译时产生警告。 – David 2011-03-23 01:52:20
你可以很容易找到:在XCode3中试试这个。 – 2011-03-23 08:17:24