我想这可以通过编写@protocol来解决。
但我渴望知识。是否有一些标志或其他方式要求子类覆盖特定方法而不是调用super?与NS_REQUIRES_SUPER / objc_requires_super相反?
答案 0 :(得分:1)
我在不使用任何标志的代码中这样做。
- 我在超类的方法中添加断言,如果调用此方法,则需要重写该方法
这里我有一个类fetchUserData
的类应该由子类重写
- (void)fetchUserData
{
NSString *descrip = [NSString stringWithFormat:@"child implementation for method:%@ : %@",NSStringFromSelector(_cmd), NSStringFromClass([self class])
NSAssert(NO, descrip);
}
答案 1 :(得分:1)
有些事情here应该有用。
具体为subclassResponsibility:
编辑:评论中的好点 - GNUStep!=基金会。换句话说,我应该谨慎使用我链接到的页面上的方法。但是,我个人使用subclassResponsibility:
并且它有效。
答案 2 :(得分:1)
如果我理解这一点,你实际上是在询问如何创建一个抽象类......强制子类实现方法。
退房:Creating an abstract class in Objective-C
简而言之,让方法抛出异常。