我有以下代码从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
}];
答案 0 :(得分:0)
此代码应该有效,请求在后台加载。问题必定在其他地方。
我不知道主线程的时间花在哪里,也许在enbleLoadingState:
?启动请求的方法应立即返回。通过在方法的开头和结尾插入NSLog并在成功块内部进行测试。成功块中的NSLog应该打印出来。