未声明委托?
Delegate was not declared?
我有一个名为 mainContainer
的视图控制器,他导入了另一个名为 myPills
的视图控制器,并将其添加为子视图。
mainContainer
也有一个 protocol
来发送代表到 myPills
class,它看起来像:
//mainContainer.h
@protocol mainScrollerDelegate <NSObject>
-(void)function;
@end
@interface MainContainerView : UIViewController<UIScrollViewDelegate>
显然,在 myPills
class 中我无法导入 mainContainer
视图,但我确实想注册到 mainContainer
代表。
所以在myPills
@interface MyPillsView : UIViewController <mainScrollerDelegate>
编译时会报错。
我读过这个,并尝试将导入移动到委托下 - 没有成功。(委托未声明的相同错误)
Cannot find protocol declaration
你怎么能从 classA 听 classB 中的代表,其中 classA 正在导入 classB ,所以 classB不能导入 A 回来吗?
将协议声明放在自己的 Protocols.h
文件中,例如:
//Protocols.h
@protocol mainScrollerDelegate <NSObject>
-(void)function;
@end
然后,只需将其导入发送委托方法的控制器和委托本身:
#import "Protocols.h"
@interface MyPillsView : UIViewController <mainScrollerDelegate>
此方法将使您的所有协议井井有条,并有助于消除循环导入。
旁注:你真的应该为你的协议使用 class 命名约定(即 MainScrollerDelegate
)。
我有一个名为 mainContainer
的视图控制器,他导入了另一个名为 myPills
的视图控制器,并将其添加为子视图。
mainContainer
也有一个 protocol
来发送代表到 myPills
class,它看起来像:
//mainContainer.h
@protocol mainScrollerDelegate <NSObject>
-(void)function;
@end
@interface MainContainerView : UIViewController<UIScrollViewDelegate>
显然,在 myPills
class 中我无法导入 mainContainer
视图,但我确实想注册到 mainContainer
代表。
所以在myPills
@interface MyPillsView : UIViewController <mainScrollerDelegate>
编译时会报错。
我读过这个,并尝试将导入移动到委托下 - 没有成功。(委托未声明的相同错误)
Cannot find protocol declaration
你怎么能从 classA 听 classB 中的代表,其中 classA 正在导入 classB ,所以 classB不能导入 A 回来吗?
将协议声明放在自己的 Protocols.h
文件中,例如:
//Protocols.h
@protocol mainScrollerDelegate <NSObject>
-(void)function;
@end
然后,只需将其导入发送委托方法的控制器和委托本身:
#import "Protocols.h"
@interface MyPillsView : UIViewController <mainScrollerDelegate>
此方法将使您的所有协议井井有条,并有助于消除循环导入。
旁注:你真的应该为你的协议使用 class 命名约定(即 MainScrollerDelegate
)。