gpt4 book ai didi

objective-c - 像 @class 一样声明协议(protocol)

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

我有两个相互通信的协议(protocol)。它们在同一个文件中定义。

@protocol Protocol1 <NSObject>
-(void)setProtocolDelegate:(id<Protocol2>)delegate;
@end

@protocol Protocol2 <NSObject>
-(void)protocol:(UIViewController<Protocol1>*)anObject chosenElementAtIndex:(NSInteger)aIndex;
@end

如何声明一个空协议(protocol) Protocol2 只是为了让编译器知道它稍后声明?

如果Protocol2 是一个类,我会在前面写@class Protocol2;

@class Protocol2;
@protocol Protocol1 <NSObject>
-(void)setProtocolDelegate:(Protocol2*)delegate;
@end

@interface Protocol2 <NSObject>
-(void)protocol:(UIViewController<Protocol1>*)anObject chosenElementAtIndex:(NSInteger)aIndex;
@end

协议(protocol)的类似结构是什么?

最佳答案

使用@protocol 进行协议(protocol)前向声明:

@protocol Protocol2;
@protocol Protocol1 <NSObject>
-(void)setProtocolDelegate:(id<Protocol2>)delegate;
@end

@protocol Protocol2 <NSObject>
-(void)protocol:(UIViewController<Protocol1>*)anObject chosenElementAtIndex:(NSInteger)aIndex;
@end

关于objective-c - 像 @class 一样声明协议(protocol),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10893737/

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