【发布时间】:2012-11-18 09:37:17
【问题描述】:
我有一个特定的场景,我正在尝试完成更通用的方法,即使用委托并根据正在设置的选择器调用选择器。
例如下面是代码:
@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];
但它给了我一个未知选择器的错误,但是当我注意到委托的引用在初始化时它是相同的。
我正在尝试在不同的类中使用委托执行选择器,除了我需要在这里做的其他事情吗?
谢谢。
【问题讨论】:
-
您尝试了吗[delegate performSelector:selector withObject:responseData];?
-
@EmptyStack 我试过了,我得到 -[HttpRequest testDrive:]: unrecognized selector sent to instance 0x7c26520'error.
-
你如何声明
HttpRequestdelegate?self.HttpRequestdelegate是什么? -
我认为 init 方法在 HttpRequest 类中。您正在设置
self.HttpRequestdelegate = self;。这是错误的。我认为您正在尝试完成一些不同的事情。我不确定。请详细解释一下您要做什么。 -
@kforkarim 对。任何冒号之前都没有任何内容(第一个冒号除外)。就目前而言,方法名称是
executeAsync::::。这不是很自我记录。
标签: iphone objective-c ios ipad cocoa