Webservice调用冻结ipad应用程序

时间:2013-07-24 05:29:28

标签: iphone ios objective-c ipad asihttprequest

我有一个应用程序,我试图使用asihttp调用web服务。一切正常,但问题是当完成呼叫后正在进行的服务呼叫都工作正常时,我的操作按钮都不起作用。以下是我的代码

ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:strURL]];
    [request setAuthenticationScheme:(NSString *)kCFHTTPAuthenticationSchemeBasic];
    [request setUsername:usrname];
    [request setPassword:passwrd];
    [request setRequestMethod:@"GET"];
    [request setDelegate:self];
    [request setDownloadDestinationPath:JsonPath];
    [request startAsynchronous];

我已经测试了同步和异步但同样的问题。

3 个答案:

答案 0 :(得分:1)

在后台线程中调用下载方法。

在主线程上下载完成后调用updateUI方法。

答案 1 :(得分:1)

我知道ASIHTTP在主线程中调用它们的方法。您可以使用AFNetWorking来更快地回复here

答案 2 :(得分:1)

像这样使用Grand Central Dispatch (GCD)

dispatch_queue_t jsonParsingQueue = dispatch_queue_create("jsonParsingQueue", NULL);


    dispatch_async(jsonParsingQueue, ^{
        @try {
             //call webservise code
       }
 }
        @catch (NSException * e) {
            NSLog(@"Exception: %@", e);


        }
        dispatch_async(dispatch_get_main_queue(), ^{


            //table reload or other code

        });
    });