我从this post得到了这个代码,一切都没问题,除了一件事,我有这个错误,我不知道如何解决。这是代码:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
CGPoint touchPoint = [[[event touchesForView:self] anyObject] locationInView:self];
CGRect currentBounds = self.bounds;
CGFloat x = touchPoint.x - CGRectGetMidX(currentBounds);
if(x<0 && self.currentPage>=0){
self.currentPage--;
[self.delegate pageControlPageDidChange:self];
}
else if(x>0 && self.currentPage<self.numberOfPages-1){
self.currentPage++;
[self.delegate pageControlPageDidChange:self];
}
}
错误是:
No visible @interface for 'NSObject<PageControlDelegate>' declares the selector 'pageControlPageDidChange:'.
我试图用ARC运行这段代码,我删除了dealloc方法,在这里更改了赋值给弱者:
@property (nonatomic, weak) NSObject<PageControlDelegate> *delegate;
正如有人在答案中写道的那样,但它仍无效。
请帮帮我。
答案 0 :(得分:5)
如果您的标题中有以下内容:
@protocol PageControlDelegate;
你错过了协议的实际定义。在链接帖子中第一个代码块的底部,这个代码包含缺少协议函数的声明:
@protocol PageControlDelegate<NSObject>
@optional
- (void)pageControlPageDidChange:(PageControl *)pageControl;
@end
答案 1 :(得分:0)
您需要导入声明PageControlDelegate协议的.h文件。