我创建了一个运行良好的自定义委托。但是当我尝试从AFNetworking调用的成功块内部调用委托时,委托调用永远不会发生。知道为什么会这样吗?
success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"Success: %@", responseObject);
NSLog(@"Check if delegate exists %@", self.delegate);// returns null
dispatch_async(dispatch_get_main_queue(), ^{
if ([self.delegate respondsToSelector:@selector(myMethod)]) {
NSLog(@"Selector myMethod found and called");
[self.delegate myMethod];
}
});
}
请注意,NSLog语句为self.delegate
返回null。我也尝试使用和不使用dispatch_async(dispatch_get_main_queue()
进行通话。同样,如果我在成功块之外进行调用,它可以工作:所以问题与我创建委托的方式无关:)。感谢。
答案 0 :(得分:1)
....self.delegate);// returns null
嗯,代表没有设置。
无论如何,混合块回调和代理似乎很奇怪。让委托者添加执行的块 此外,AFNetworking确实称其为主队列/线程上的块,您不必调度该代码。