gpt4 book ai didi

ios - 从 URL 获取数据时显示加载指示器的正确方法是什么

转载 作者:搜寻专家 更新时间:2023-10-30 20:15:58 24 4
gpt4 key购买 nike

我是 objective-c 的新手,我正在开发一个新闻 iOS 应用程序,该应用程序使用 JSON 解析从 url 获取其所有内容,我为此使用 AFNetworking 和这是我制作的方法:

- (void)getContents
{
NSString *urlString = @"http://some-url-that-has-json-output/";
urlString = [urlString stringByAppendingString:self.articleId];
NSLog(@"The call url is: %@",urlString);
NSURL *url = [NSURL URLWithString:urlString];

NSURLRequest *request = [NSURLRequest requestWithURL:url];
//AFNetworking asynchronous url request
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc]
initWithRequest:request];
operation.responseSerializer = [AFJSONResponseSerializer serializer];
[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"The JSON data is: %@", responseObject);
jsonContents = [responseObject objectForKey:@"article"];
[self LoadStructure];
} failure:nil];
[operation start];
}

现在使用此方法可以很好地加载数据。

我的问题:如何在获取数据时显示加载指示器(可以是 GIF)?上面的这种方法是从 url 获取数据的正确方法还是最佳方法?

最佳答案

您可以使用 iOS 的默认加载指示器(UIActivityIndi​​cator)。您应该在完成 block 之前开始对其进行动画处理,并且应该隐藏在成功和失败 block 中。

您应该创建一个使用指标作为类变量的方法:

indicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
indicator.hidesWhenStopped = YES;
indicator.frame = CGRectMake(35, 15, 30, 30);
[self.view addSubview:indicator];

NSURLRequest *request = [NSURLRequest requestWithURL:url];
//AFNetworking asynchronous url request
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc]
initWithRequest:request];
operation.responseSerializer = [AFJSONResponseSerializer serializer];
[indicator startAnimating];
[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"The JSON data is: %@", responseObject);

//停止:

[indicator stopAnimating];
jsonContents = [responseObject objectForKey:@"article"];
[self LoadStructure];
} failure::^(AFHTTPRequestOperation *operation, NSError *error){
[indicator stopAnimating];
}];
[operation start];

关于ios - 从 URL 获取数据时显示加载指示器的正确方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30300435/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com