与Objective-C代码不兼容的类型错误

时间:2014-01-24 00:01:35

标签: objective-c

Sending 'ForsteSettFasitViewController *const __strong' to parameter of incompatible type 'id<UIScrollViewDelegate>'

这是我得到语义问题的那一行:

[scrollerForstFasit setDelegate:self];

3 个答案:

答案 0 :(得分:3)

你遗漏了一个非常重要的警告部分。在id之后,您应该看到一个命名协议,例如id<SomeKindOfDelegate>。无论哪种方式,您都会收到此错误,因为您将self指定为委托,但您从未指定该类应符合协议。

@interface MySubclass : MyBaseClass <TheSameDelegateFromBefore>

现在你已经粘贴了完整的错误。它应该是以下

@interface MySubclass : MyBaseClass <UIScrollViewDelegate>

答案 1 :(得分:0)

假设scrollerForstFasitUIScrollView的子视图,其委托必须符合<UIScrollViewDelegate>协议。在将其设置为委托之前,请确保您的self(无论它是什么类)符合此协议。您可以在.h

中执行此操作
@interface MyClassThatICallSelfAndAssignAsDelegate : MySuperclass <UIScrollViewDelegate>

答案 2 :(得分:0)

这可以通过两种方式自行添加.h fil add

@interface YourClass : YourBaseClass<UIScrollViewDelegate>
@end

或在你的.m文件中

@interface YourClass ()<UIScrollViewDelegate>
@end

错误/警告是因为您没有符合您的类并尝试将对象设置为scrollview的委托