在 viewDidLoad 中从 JSON 加载数据不起作用

Posted

技术标签:

【中文标题】在 viewDidLoad 中从 JSON 加载数据不起作用【英文标题】:Loading data from JSON in viewDidLoad doesn't work 【发布时间】:2010-11-08 14:23:28 【问题描述】:

我正在开发一个 iPhone 应用程序,其中数据来自一个返回 json 文件的 web 服务。我在要绑定数据的 UITableViewController 的 viewDidLoad 中使用以下命令:

    responseData = [[NSMutableData data] retain];


NSURLRequest *request = [NSURLRequest requestWithURL:
                         [NSURL URLWithString:@"webservice url"]];

[[NSURLConnection alloc] initWithRequest:request delegate:self];

然后我将 json 结果中的数据放入 connectionDidFinishedLodading 委托中的 NSDictionary。

问题是来自 UITableView 的 numberOfRowsInSection 委托在连接完成下载数据之前执行,这使我的表格视图为零行并且不显示任何内容。

我做错了什么?我是否误解了 viewDidLoad 的概念,应该在其他地方加载这些数据?

【问题讨论】:

【参考方案1】:

处理完数据后,在 tableView 上调用 reloadData。

[self.tableView reloadData];

这会重新触发所有 UITableViewDatasource 方法。

【讨论】:

以上是关于在 viewDidLoad 中从 JSON 加载数据不起作用的主要内容,如果未能解决你的问题,请参考以下文章

在 Laravel 中从数据库存储和加载 JSON 的最佳方法

如何在 Swift 中从同一站点重新加载新的 JSON 数据?

在 jQuery 中从 JSON 加载 HTML 控件(即 Ajax serialiseArray 的逆向)

Swift 3:在 ViewDidLoad 中从服务器获取信息,当单击按钮时,等待服务器的信息响应

如何在 SpriteKit 中从 Web API 加载精灵表

无法在每个循环中从 JSON 访问数组