gpt4 book ai didi

ios - 未声明委托(delegate)?

转载 作者:行者123 更新时间:2023-11-29 01:55:06 25 4
gpt4 key购买 nike

我有一些名为 mainContainer 的 View Controller ,他导入了一些名为 myPills 的 View Controller ,并将其添加为 subview 。

mainContainer 还有一个 protocol 将委托(delegate)发送到 myPills 类,它看起来像:

//mainContainer.h
@protocol mainScrollerDelegate <NSObject>

-(void)function;

@end

@interface MainContainerView : UIViewController<UIScrollViewDelegate>

显然,在 myPills 类中我无法导入 mainContainer View ,但我确实想注册到 mainContainer 委托(delegate)。

所以在 myPills

@interface MyPillsView : UIViewController <mainScrollerDelegate>

编译时会报错。

我读过这篇文章,并尝试将导入移动到委托(delegate)下 - 没有成功。(未声明委托(delegate)的相同错误)

Cannot find protocol declaration

您如何从 classA 收听 classB 中的委托(delegate),其中 classA 正在导入 classB,因此 classB 不能将 A 导入回来?

最佳答案

将您的协议(protocol)声明放在它自己的 Protocols.h 文件中,例如:

//Protocols.h
@protocol mainScrollerDelegate <NSObject>

-(void)function;

@end

然后,只需将它导入发送委托(delegate)方法的 Controller 和委托(delegate)本身:

#import "Protocols.h"

@interface MyPillsView : UIViewController <mainScrollerDelegate>

此方法将使您的所有协议(protocol)井井有条,并有助于消除循环导入。

旁注:您真的应该为您的协议(protocol)使用类命名约定(即 MainScrollerDelegate)。

关于ios - 未声明委托(delegate)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30959207/

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