在Ad hoc构建时未调用ASIFormDataRequest

时间:2013-06-15 21:41:16

标签: ios app-store asihttprequest adhoc

在我的应用中,我使用ASIFormDataRequest在网上发布和获取数据。 但是当我为App Store构建我的应用程序时(使用ad-hoc构建),其中一些请求根本就没有被调用!这毁了我的应用程序。

有人知道为什么吗?使用Xcode进行构建和App Store的应用程序构建之间有什么区别?

我使用以下方式调用我的请求:

 NSString *stringURL = @"http://myserv.com";
 NSURL *urlPosting = [NSURL URLWithString:stringURL];

            __weak ASIFormDataRequest *requestFormBase1 = [ASIFormDataRequest requestWithURL:urlPosting];


            [requestFormBase1 addPostValue:valueToPost forKey:@"key"];


            [requestFormBase1 startAsynchronous];

            [requestFormBase1 setCompletionBlock:^{

  ...

非常感谢。

1 个答案:

答案 0 :(得分:0)

此示例适用于我。

dispatch_queue_t queue = dispatch_queue_create("_downloadQueue", NULL);
dispatch_async(queue, ^(void){
    NSString *_apiURL = @"http://yours.com";
    __weak ASIFormDataRequest *formRequest = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:_apiURL]];
    [formRequest setCompletionBlock:^{
        NSLog(@"response string : %@", [formRequest responseString]);
        dispatch_async(dispatch_get_main_queue(), ^(void) {
            //To execute the UIs.
        });
    }];
    [formRequest setFailedBlock:^{
        dispatch_async(dispatch_get_main_queue(), ^(void) {
            //To execute the UIs.
        });
    }];
    [formRequest startAsynchronous];
});

在您的代码中,您可能需要更改有关“[requestFormBase1 startAsynchronous];”的执行过程,以便最后一次运行,如下所示:

NSString *stringURL = @"http://myserv.com";
NSURL *urlPosting = [NSURL URLWithString:stringURL];
__weak ASIFormDataRequest *requestFormBase1 = [ASIFormDataRequest requestWithURL:urlPosting];
[requestFormBase1 addPostValue:valueToPost forKey:@"key"];
[requestFormBase1 setCompletionBlock:^{ ... }];
[requestFormBase1 startAsynchronous];

这是Block方法运行过程标准。希望它会对你有所帮助。