gpt4 book ai didi

objective-c - 转发协议(protocol)@required 到子类

转载 作者:太空狗 更新时间:2023-10-30 03:40:19 25 4
gpt4 key购买 nike

我有:

@interface SuperClass : UIViewController <UITableViewDelegate,UITableViewDataSource>

然后

@interface SubClass : SuperClass

这个 SuperClass 没有实现所需的协议(protocol)方法 SubClass 一个有。
是否可以防止警告(说 SuperClass 实现不完整)?

不是在 SuperClass 中实现空/nil 方法,是否可以针对 SubClass 进行 @required 警告验证?

最佳答案

您可能不会在父类(super class)中声明采用协议(protocol),但要求所有子类都遵守协议(protocol)。这可以通过实现 +initialize 来完成在你的父类(super class)中如下:

+ (void)initialize
{
if (self != [SuperClass class] &&
![self conformsToProtocol:@protocol(UITableViewDelegate)])
{
@throw [NSException ...]
}
}

这样,无论何时SuperClass的子类已初始化,不符合<UITableViewDelegate>会抛出异常.将其放入父类(super class)后无需进一步工作。

关于objective-c - 转发协议(protocol)@required 到子类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6191072/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com