0

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

有人知道为什么吗?使用 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:^{

  ...

非常感谢。

4

1 回答 1

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 方法运行过程标准。希望它会帮助你。

于 2013-06-16T06:02:02.610 回答