我有:
@interface SuperClass : UIViewController <UITableViewDelegate,UITableViewDataSource>
Run Code Online (Sandbox Code Playgroud)
然后
@interface SubClass : SuperClass
Run Code Online (Sandbox Code Playgroud)
这SuperClass没有实现所需的协议方法SubClass.
是否可以防止警告(说SuperClass实现不完整)?
而不是实现empty/nil方法SuperClass,可以对@required警告进行验证SubClass吗?
Jon*_*ing 10
您可能不会在超类中声明协议采用,但要求在所有子类中遵从.这可以通过+initialize在您的超类中实现,如下所示:
+ (void)initialize
{
if (self != [SuperClass class] &&
![self conformsToProtocol:@protocol(UITableViewDelegate)])
{
@throw [NSException ...]
}
}
Run Code Online (Sandbox Code Playgroud)
这样,每当SuperClass初始化子类时,如果它不符合,它将抛出异常<UITableViewDelegate>.将它放入超类之后,这不需要进一步的工作.
| 归档时间: |
|
| 查看次数: |
1590 次 |
| 最近记录: |