iOS快速从服务器加载数据

Shi*_*rma 2 json objective-c ios

我正在开发一个购物应用程序,我使用网络服务来获取数据,即产品列表等。但是加载需要太多时间,因此使我的应用程序非常慢。

这个问题有什么解决办法吗?

下面是我尝试获取产品列表的代码。

NSURL * Url=[NSURL URLWithString:@"URL/api/product"]; 
NSData * Data=[NSData dataWithContentsOfURL:Url];
NSString *str=[[NSString alloc]initWithData:Data encoding:NSUTF8StringEncoding];
NSDictionary *jsonDict = [NSJSONSerialization JSONObjectWithData:[strinng dataUsingEncoding:NSUTF8StringEncoding] options:NSJSONReadingMutableContainers error:nil]; 
Run Code Online (Sandbox Code Playgroud)

无法放入 JSON 响应,因为它太多了。

Pus*_*raj 5

没有办法RIGHTWRONG没有办法做到这一点。但为了快速加载数据,我们可以考虑一些要点。我可以提到这些点,还可以有很多其他点:

  1. 使用AFNetworking(对于目标 c) 或Alamofire(对于 swift) 来调用 Web 服务并获得响应。
  2. 不要在里面做太多的事情viewDidLoad。尽量少做操作。
  3. 您可以调用网络服务 inviewDidLoad或 in viewWillAppear(每次访问屏幕时都会调用它)
  4. 收到响应后在主线程上更新 UI。参考这篇文章。
  5. 如果您想显示来自 URL 的图像,请异步加载。您可以使用第三方库,例如SDWebImage或者使用AFNetworking和中提供的扩展Alamofire
  6. 如果您想在列表中显示产品列表,请使用Load More功能。为此,您的 API 应该足够智能,并且使用pagination.
  7. 使用UITableViewUICollectionView用于显示可重用组件。

到目前为止,我可以强调这些要点。如果我发现任何其他内容,我会更新我的答案。