3

この投稿からこのコードを取得しましたが、1 つのことを除いてすべて問題ありません。修正方法がわからないこのエラーがあります。これはコードです:

- (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;

誰かが答えに書いたように、それでもうまくいきません。

私を助けてください。

4

2 に答える 2

5

ヘッダーに次のものがある場合:

@protocol PageControlDelegate;

プロトコルが何であるかの実際の定義を見逃しました。リンクされた投稿の最初のコード ブロックの下部に、欠落しているプロトコル関数の宣言を含む次のコードがあります。

@protocol PageControlDelegate<NSObject>
@optional
- (void)pageControlPageDidChange:(PageControl *)pageControl;
@end
于 2012-05-24T18:50:54.317 に答える
0

PageControlDelegate プロトコルを宣言する .h ファイルをインポートする必要があります。

于 2012-05-24T18:37:22.783 に答える