首先完成后执行一个方法

时间:2014-03-02 12:25:46

标签: ios objective-c cocoa-touch grand-central-dispatch

我有一些问题,我想创建一个与数据库建立连接的程序。但我有两种连接方法:

  1. 我从服务器获取会话ID

  2. 使用此会话ID我建立连接。

  3. 我的问题是我想在程序启动时执行此操作。 但是我把NSLog和当我得到会话ID时,然后我建立连接 我的sessionID为null(直接调用第二个方法时)。

    但是,如果我调用第二种方法(例如,当我按下按钮时),我的session_id不为空。

    我把它放在dispatch_asynch中,但它不起作用。我不明白dispatch_asynch。 我希望我很清楚。

1 个答案:

答案 0 :(得分:0)

您应该使用sendAsynchronousRequest

NSURL *url = [NSURL URLWithString:urlString];

    NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url];

    [NSURLConnection sendAsynchronousRequest:urlRequest queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
            NSDictionary *dict=[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
             // Here you can continue 
        }];