AFHTTPRequestOperation阻止UI

时间:2012-04-18 17:59:56

标签: objective-c ios afnetworking

我有以下代码从php脚本中获取一些数据。我发现它阻止了界面,因此进度指示器不会旋转。 有没有一种简单的方法将其发送到后台,以便UI可以自由地做任何需要的事情?我的印象是使用积木会实现这一点,但我显然是错的(一次一步学习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
}];

1 个答案:

答案 0 :(得分:0)

此代码应该有效,请求在后台加载。问题必定在其他地方。 我不知道主线程的时间花在哪里,也许在enbleLoadingState:?启动请求的方法应立即返回。通过在方法的开头和结尾插入NSLog并在成功块内部进行测试。成功块中的NSLog应该打印出来。