次のように、別のクラスインターフェイスファイル内にデリゲートを実装して、デリゲートを実装しようとしています。
ImageScrollView.h
#import <UIKit/UIKit.h>
@protocol ImageScrollViewDelegate <NSObject>
- (void)scrollViewDidScroll:(UIScrollView *)scrollView;
- (void)scrollViewDidZoom:(UIScrollView *)scrollView;
@end
@interface ImageScrollView : UIScrollView <UIScrollViewDelegate>
{
id <ImageScrollViewDelegate> _imageScrollViewDelegate;
}
@property(nonatomic, assign) id <ImageScrollViewDelegate> imageScrollViewDelegate;
@end
ImageScrollView.m
#import "ImageScrollView.h"
@implementation ImageScrollView
@synthesize imageScrollViewDelegate = _imageScrollViewDelegate;
...
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
[self.imageScrollViewDelegate scrollViewDidScroll:scrollView];
}
- (void)scrollViewDidZoom:(UIScrollView *)scrollView;
{
[self.imageScrollViewDelegate scrollViewDidZoom:scrollView];
}
...
@end
次に、ImageScrollViewDelegateを実装するviewControllerがあります。
ViewControllerSubClass.h
#import <UIKit/UIKit.h>
@protocol ImageScrollViewDelegate;
@interface ViewControllerSubClass : UIViewController <ImageScrollViewDelegate> //warning is here
{
}
@end
ViewControllerSubClass.m
#import "ViewControllerSubclass.h"
#import "ImageScrollView.h"
@implementation ViewControllerSubClass
- (void)loadView
{
...
[[self scrollView] setImageScrollViewDelegate:self];
...
- (void) scrollViewDidScroll:(UIScrollView *)scrollView
{
...
}
- (void)scrollViewDidZoom:(UIScrollView *)scrollView
{
...
}
の@interface@interface ViewControllerSubClass : UIViewController <ImageScrollViewDelegate>
でViewControllerSubclass.h
、「 "ImageScrollViewDelegate"のプロトコル定義が4回見つかりませんが、コードはまだ機能しています」という警告が表示されます。
警告を取り除く方法、またはデリゲートを適切に実装する方法を知っている人は誰でもいます(別のファイルを使用する方が良いですか?)。