私の問題は、デリゲートを介してプロトコルメソッドdataLoading
を呼び出すときに、それが認識されず、expected identifier
エラーが発生するということです。ここでデリゲート経由で呼び出されたときにプロトコルメソッドが認識されない
プロトコル/インタフェースファイルされる:
#import <Foundation/Foundation.h>
@class LoaderView;
@protocol DataLoaderProtocol <NSObject>
@required
- (void) dataLoading;
- (void) doneLoading;
@end
@interface DataLoader : NSObject {
}
@property (retain) id <DataLoaderProtocol> delegate;
@property (retain, nonatomic) LoaderView *loader;
- (id) initWithDelegate: (id <DataLoaderProtocol>) delegate;
- (void) start;
@end
そして、ここでは、実装ファイルされる:
#import "DataLoader.h"
#import "LoaderView.h"
@implementation DataLoader
@synthesize delegate = _delegate;
@synthesize loader = _loader;
- (id) initWithDelegate: (id <DataLoaderProtocol>) delegate
{
self.delegate = delegate;
return self;
}
- (void) start
{
NSOperationQueue *queue = [NSOperationQueue new];
NSInvocationOperation *operation = [[NSInvocationOperation alloc]
initWithTarget:self.delegate
selector:@selector([self.delegate dataLoading])
object:nil];
[queue addOperation:operation];
[operation release];
}
@end
エラーがこの行である:selector:@selector([self.delegate dataLoading])
私はこの確信しています私の部分の愚かな間違いですが、それはその方法を認識していない理由は、デリゲートは、プロトコルで結ばれているので、私は、理解していない...
いやはや!!そうです、私はすでに目標を指定しているので、正しいです!どのような愚かな間違い。 – xil3