0

PHPスクリプトからデータを取得する次のコードがあります。進行状況インジケーターが回転しないようにインターフェイスをブロックしていることがわかります。UIが必要なことを自由に行えるように、これをバックグラウンドに送信する簡単な方法はありますか? ブロックを使用すればこれが達成できるだろうという印象を受けましたが、明らかに間違っていました (一度に 1 つずつ Obj-C を学習しました!)。

ありがとう!

NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys:
                        self.user.username, @"username",
                        self.user.password, @"password",
                        nil];
AFHTTPClient *client = [[AFHTTPClient alloc] initWithBaseURL:
                        [NSURL URLWithString:@"http://domain.com"]];

    // Show animated progress indicator, etc    
[self enbleLoadingState:YES];

[client postPath:@"/en/api/login" parameters:params success:^(AFHTTPRequestOperation *operation, id response) {
    [self enbleLoadingState:NO];
    // Do stuff

} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    [self enbleLoadingState:NO];
    // Show error
}];
4

1 に答える 1

0

このコードは機能するはずです。リクエストはバックグラウンドで読み込まれます。問題は別の場所にあるはずです。メインスレッドのどこで時間が費やされているのかわかりませんenbleLoadingState:。リクエストを開始するメソッドはすぐに戻る必要があります。メソッドの最初と最後、および成功ブロック内に NSLog を挿入して、これをテストします。成功ブロックの NSLog が最後に出力されます。

于 2012-04-19T15:43:59.510 に答える