我创建了一个运行良好的自定义委托。但是,当我尝试从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()
和不使用的呼叫。同样,如果我在成功块之外进行调用,它将起作用:所以问题与我创建委托的方式无关:)。谢谢。 最佳答案
....self.delegate);// returns null
好,没有设置委托。
无论如何,混合使用块回调和委托似乎很奇怪。只需让委托人添加执行的块即可。
此外,AFNetworking确实将其称为主队列/线程上的块,您不必分派该代码。
关于ios - 不能从AFNetworking成功块中调用自定义委托(delegate),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25855905/