上述答案来自here。
我的问题是:
建议的代码似乎按预期工作。但问题是Xcode对红色箭头指向的语句发出警告。 警告是:
找不到实例方法'-scrollViewDidScroll'(返回类型默认值 'id')
另一个问题是'-scrollViewDidScroll'返回“void”而不是编译器假设的'id'。
希望摆脱警告并让编译器知道返回类型为“void”。
希望有人能帮忙......
答案 0 :(得分:5)
self.delegate
应声明为id<UIScrollViewDelegate>
个实例。
答案 1 :(得分:2)
确保委托的类型具有公共方法-scrollViewDidScroll。
答案 2 :(得分:1)
显式强制转换可能会为您解决此问题。
答案 3 :(得分:-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