Objective-C扩展语法

时间:2013-05-21 14:47:16

标签: iphone objective-c xcode

enter image description here

上述答案来自here

我的问题是:

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

  

找不到实例方法'-scrollViewDidScroll'(返回类型默认值   'id')

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

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

希望有人能帮忙......

4 个答案:

答案 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