无法从AFNetworking的成功块调用自定义委托

时间:2014-09-15 19:54:16

标签: ios objective-c delegates block afnetworking

我创建了一个运行良好的自定义委托。但是当我尝试从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()进行通话。同样,如果我在成功块之外进行调用,它可以工作:所以问题与我创建委托的方式无关:)。感谢。

1 个答案:

答案 0 :(得分:1)

....self.delegate);// returns null

嗯,代表没有设置。


无论如何,混合块回调和代理似乎很奇怪。让委托者添加执行的块 此外,AFNetworking确实称其为主队列/线程上的块,您不必调度该代码。