情况就是这样。我做C++程序员已经很久了。我喜欢抽象类和“接口”,所以我想用objc来做同样的事情。
我为我的接口使用了一个协议,但问题是,当我的抽象类继承自该协议时(我不想在这里实现它),我会收到如下警告:
警告:找不到'XXXXX‘的方法定义,'XXXXX’类没有完全实现'XXXXXX‘协议。
有没有办法抑制这一点呢?如果基类没有实现协议,我希望这个类的子类会抛出“正确的警告”。
另一种选择是只在需要的时候从协议继承,但我喜欢在基类中强制这样做,以确保继承实现接口。
有什么建议吗?提前谢谢。
发布于 2010-07-15 03:25:14
当您在Objective-C类中实现协议时,您必须实现所有方法。但是,您可以提供存根实现。这个mailing list post描述了如何在“抽象”类中使用doesNotRecognizeSelector:。
发布于 2010-07-15 03:09:32
我不认为有你正在寻找的解决方案。您必须定义协议中声明的所有方法,至少将它们实现为空方法。
我知道你正在寻找一个类似于代码的C++,但是Obj-C是不同的,我们必须接受它。此外,gcc支持c++/obj-c混合,所以你可以用纯C++编写项目的一部分,当你需要一些低级代码或想要一些容易移植的东西时,这是很棒的。
https://stackoverflow.com/questions/3015545
复制相似问题