就是这种情况。我多年来一直是C ++程序员。我喜欢抽象类和“接口”,所以我喜欢用objc做同样的事情。
我为我的接口使用了一个协议,但问题是,当我的抽象类继承协议时(我不想在这里实现它),我得到的警告如下:
警告:未找到“XXXXX”的方法定义,“XXXXX”类未完全实现“XXXXXX”协议。
无论如何都要压抑这个?如果基类没有实现协议,我希望这些类的子类会抛出“正确的警告”。
另一种选择是在需要时继承协议,但我想在基类中强制执行此操作以确保继承实现接口。
任何提示?, 提前谢谢。
答案 0 :(得分:2)
在Objective-C类中实现协议时,必须实现所有方法。但是,您可以提供存根实现。这个mailing list post描述了如何在“抽象”类中使用doesNotRecognizeSelector:
。
答案 1 :(得分:1)
我认为找不到解决方案。您必须定义协议中声明的所有方法,至少将它们实现为空方法。
我知道你正在寻找类似C ++的代码,但是Obj-C是不同的,我们必须忍受它。另外,gcc支持c ++ / obj-c mix,所以你可以用纯C ++编写项目的一些部分,当你需要一些低级代码或想要一些易于移植的东西时,这是很棒的。