Iphone 在后台执行API调用之前,如何显示UIActivityIndicator?
我在viewdidLoad上从我的应用程序调用服务器API,我想在后台执行,直到我想在屏幕上显示UIActivityIndicator,当我得到API响应时,它应该被隐藏。如何做到这一点???我已经有一段时间没有做过很多iOS的东西了,也许有一个方便的课程或其他东西可以帮你做到这一点。但在任何情况下,您都可以执行以下操作 创建一个类来处理远程资源的获取,并让您要从中调用它的类实现一个协议,如MyAPIFetcherDelegate,以及一个在获取完成时将调用的方法(如Iphone 在后台执行API调用之前,如何显示UIActivityIndicator?,iphone,Iphone,我在viewdidLoad上从我的应用程序调用服务器API,我想在后台执行,直到我想在屏幕上显示UIActivityIndicator,当我得到API响应时,它应该被隐藏。如何做到这一点???我已经有一段时间没有做过很多iOS的东西了,也许有一个方便的课程或其他东西可以帮你做到这一点。但在任何情况下,您都可以执行以下操作 创建一个类来处理远程资源的获取,并让您要从中调用它的类实现一个协议,如MyAPIFetcherDelegate,以及一个在获取完成时将调用的方法(如resourceDidFin
resourceDidFinishLoading
)。然后你做一些类似的事情
- (void)getResource
{
MyFetcher* fetcher = [[MyFetcher alloc] init];
fetcher.delegate = self;
// start/show the UIActivityIndicator
[NSThread detachNewThreadSelector:@selector(fetchResource:) toTarget:fetcher withObject:nil];
}
- (void)resourceDidFinishLoading
{
// Stop/Hide the UIActivityIndicator
// do something with the data that comes back
}
请注意,为了实际处理返回的结果,您可能需要传递一些数据,我是从粗略的内存中键入的,因此可能存在错误。但这是总的想法。从那里,您应该能够从文档中找到它
另外,不要忘记考虑API中的错误。如果超时,您不希望微调器坐在那里拒绝放弃屏幕。创建NSThread作为调用选择器,如下所示:
[NSThread detachNewThreadSelector:@selector(threadStartAnimating:) toTarget:self withObject:nil];
// Your code
[spinner stopAnimating];
[self.navigationcontroller pushviewcontroller:viewcontroller animated:YES];
线程开始初始化:
-(void)threadStartAnimating:(id)data
{
[spinner startAnimating];
}