1

在此处输入图像描述

上面的 SO 答案来自这里

我的问题是:

建议的代码似乎按预期工作。但问题是 Xcode 会针对红色箭头所指的语句发出警告。警告是:

找不到实例方法“-scrollViewDidScroll”(返回类型默认为“id”)

另一个问题是“-scrollViewDidScroll”返回“void”而不是编译器假定的“id”。

希望摆脱警告并让编译器知道返回类型是“void”。

希望有人可以帮助...

4

4 回答 4

5

self.delegate应声明为id<UIScrollViewDelegate>实例。

于 2013-05-21T14:52:20.023 回答
2

确保委托的类型具有公共方法 -scrollViewDidScroll。

于 2013-05-21T14:53:04.060 回答
1

显式转换可能可以为您解决这个问题。

于 2013-05-21T14:52:37.833 回答
-3

我遇到了类似的情况,我在以编程方式设置的回调上调用选择器。它产生了一个警告,因为编译器(正确地)假设它在编译时无法判断选择器是否对该对象有效。我使用以下代码模式来抑制警告,这也应该适用于您的情况。

//Suppress compiler warnings
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Warc-performSelector-leaks"

//Perform method that generates warning
[self.delegate scrollViewDidScroll: scrollView];

//Stop suppressing compiler warnings
#pragma clang diagnostic pop
于 2013-05-21T17:52:53.967 回答