线程块中的UIAlert不能与AFNetworking一起使用

时间:2015-02-28 10:02:33

标签: ios multithreading afnetworking-2

我正在使用AFHTTPSessionManager的子类来发出GET请求。我使用GCD将一些responseObject处理发送给一个线程。如果responseObject没有返回字典,我想要一个警报,但这个警报永远不会显示。它是线程还是responseObject的问题?如果我检查responseObject == nil,那么它就不会工作,因为必须有一些对象,即使它没有字典,因为responseObject的类型是" id"。我认为这是问题但不确定,因为线程化使事情变得复杂。谢谢。

[client GET:getString parameters:nil success:^(NSURLSessionDataTask *task, id responseObject) {
        {
            NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *)task.response;
            if (httpResponse.statusCode == 200) {
                dispatch_async(dispatch_get_main_queue(), ^{

                    if (responseObject == nil){

                          [message show];

                    }

1 个答案:

答案 0 :(得分:0)

关键是,你需要检查responseObject的类:

[client GET:getString parameters:nil success:^(NSURLSessionDataTask *task, id responseObject) {
    {
        NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *)task.response;
        if (httpResponse.statusCode == 200) {
            if(![responseObject isKindOfClass:[NSDictionary class]]) {
               dispatch_async(dispatch_get_main_queue(), ^{

                      [message show];
           }