gpt4 book ai didi

ios - 委托(delegate)方法不能引用自己的类

转载 作者:行者123 更新时间:2023-12-01 17:39:31 24 4
gpt4 key购买 nike

我有一个名为 NumberPickerView 的 UIView 子类。我正在为它编写一个委托(delegate)方法。编译器不会让我将 NumberPickerView 的实例作为该方法中的参数传递。我错过了什么?

@protocol NumberPickerViewDelegate

-(void) numberPickerDidChangeSelection:(NumberPickerView *)numberPickerView;
//error: expected a type

@end


@interface NumberPickerView : UIView <UIScrollViewDelegate> {
id <NumberPickerViewDelegate> delegate;
}

最佳答案

其实可以。那时编译器不知道 NumberPickerView类(class)

@class NumberPickerView;

将它添加到协议(protocol)声明上,让编译器知道该类...它被称为 forward declaration .

为了更好地理解,请查看:

iPhone+Difference Between writing @classname & #import"classname.h" in Xcode

或者

将协议(protocol)声明移到类 NumberPickerView 之下定义,但在这种情况下,您还应该在顶部添加:
@protocol NumberPickerViewDelegate;

使用 id<NumberPickerViewDelegate>delegate 不会收到警告

关于ios - 委托(delegate)方法不能引用自己的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25462300/

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