デリゲートを使用し、設定されているセレクターに基づいてセレクターを呼び出すという、より一般的なアプローチを達成しようとしている特定のシナリオがあります。
たとえば、以下はコードです。
@protocol HttpRequestDelegate
@optional
- (void)testDrive:(NSData*)dataembedd;
@end
- (id)init {
self = [super init];
if (self) {
//Initialize it here.
self.HttpRequestdelegate = self;
}
return self;
}
HttpRequest *apiCaller = [[HttpRequest alloc] init];
NSLog(@"%@",apiCaller.HttpRequestdelegate);
[WLCC_ApiCaller executeAsync:apiCaller.HttpRequestdelegate :@selector(testDrive:) :[NSURL URLWithString:updateUrl] :wlcc_Get];
ただし、executeAsync 呼び出しでは、次のようなテスト ドライブであるセレクターを呼び出そうとしています。
[delegate performSelector:@selector(selector) withObject:responseData];
しかし、不明なセレクターのエラーが発生しますが、デリゲートの参照が初期化されたときと同じであることに気付いた場合。
別のクラスでデリゲート実行セレクターを利用しようとしていますが、ここで行う必要があること以外に何かありますか?
ありがとう。