在父母中实施子代表?

Posted

技术标签:

【中文标题】在父母中实施子代表?【英文标题】:Implement Child Delegate in Parent? 【发布时间】:2016-03-13 06:54:44 【问题描述】:

如何在 Parent 中实现 Child 的委托?

Parent.h:

@interface Parent : NSObject

Child.h

#import "Parent.h"
@protocol ChildDelegate <NSObject>
- (void)someMethod;
@end

@interface Child : Parent

我不能将 Parent 的接口声明为:

@interface Parent : NSObject<ChildDelegate>

因为需要导入"Child.h",所以会循环导入。

我该如何解决这个问题?

【问题讨论】:

ChildDelegate 移动到一个新的头文件中,比如"ChildDelegate.h" 你能举个例子吗? 它是一个单独的文件,并且该文件必须由父母和孩子共同导入? 【参考方案1】:

您应该在源文件中声明协议一致性(带有.m 扩展名)。

您可以在Parent.h 中声明Parent 类而不符合ChildDelegate 协议。

@interface Parent : NSObject

在您的Parent.m 文件中,您可以编写如下内容。

#import "Child.h"

@interface Parent() <ChildDelegate>

@end

@implementation Parent
// Your implementation code here
@end

【讨论】:

以上是关于在父母中实施子代表?的主要内容,如果未能解决你的问题,请参考以下文章

PTA-天梯赛训练愿天下有情人都是失散多年的兄妹

JPA实体:如何检查递归父母

家庭财产房屋分配协议书

在 Qt 中实现滑动实时二维绘图

核心位置代表闭包中的价值

如何让 swiftui drop 代表被调用