Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c AFHTTPRequestOperation块用户界面_Objective C_Ios_Afnetworking - Fatal编程技术网

Objective c AFHTTPRequestOperation块用户界面

Objective c AFHTTPRequestOperation块用户界面,objective-c,ios,afnetworking,Objective C,Ios,Afnetworking,我有以下代码从php脚本中获取一些数据。我发现它阻塞了接口,因此进度指示器不会旋转。 是否有一种简单的方法将其发送到后台,以便UI可以自由地执行任何需要的操作?我的印象是使用块可以实现这一点,但我显然错了(一步一步地学习Obj-C!) 谢谢 NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys: self.user.username, @"username",

我有以下代码从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
}];

这段代码应该可以工作,请求在后台加载。问题一定在别的地方。
我不知道主线程的时间花在哪里,可能是在
enbleLoadingState:
?启动请求的方法应立即返回。通过在方法的开始和结束处以及成功块内部插入NSLog来测试这一点。成功块中的NSLog应该最后打印出来。

此代码应该有效,请求在后台加载。问题一定在别处。最好将AFHTTPClient子类化并使其成为单例class@phix23但它不起作用:(在我的php脚本中,我做了一个睡眠(5)它会等待5秒,而进度指示器就在那里,我无法点击UI上的任何其他按钮。我使用的是迄今为止最新的Xcode和iOS SDK。这在模拟器以及iPad第一代上都会发生。我使用的是ARC…我想不出任何其他东西可以对此有所帮助。我将尝试对客户端进行子类化正如你所说(我想我在某处看到了一个这样的例子)。@phix23我刚刚把AFHTTPClient做成了一个单体(iOS示例应用程序有一个我可以使用的,只需稍加调整),问题仍然存在,只是现在代码更干净了:)有什么想法吗?我仍然不知道在主线程上花了多少时间,可能是在
enbleLoadingState:
?启动请求的方法应立即返回。通过在方法的开始和结束处以及成功块内部插入NSLog来测试这一点。成功块中的NSLog最后应该打印出来。