【发布时间】:2009-03-25 00:16:23
【问题描述】:
我有一个表视图控制器,它发出一个 http 请求,它返回 xml。我解析 xml 并将其显示在 UITableView 中。第一次调用 http 请求时,一切都按预期工作。第二次调用http请求:我按预期收到了xml,但表没有更新。我每 2 秒调用一次 TableView 的 reloadData 方法,所以这不是问题任何想法????
【问题讨论】:
标签: iphone cocoa cocoa-touch
我有一个表视图控制器,它发出一个 http 请求,它返回 xml。我解析 xml 并将其显示在 UITableView 中。第一次调用 http 请求时,一切都按预期工作。第二次调用http请求:我按预期收到了xml,但表没有更新。我每 2 秒调用一次 TableView 的 reloadData 方法,所以这不是问题任何想法????
【问题讨论】:
标签: iphone cocoa cocoa-touch
在您更新 XML 后在某处设置断点并检查您提供给表格视图的数据是否符合您的预期。如果没有,请通过调用堆栈查看您遗漏了什么。此外,设置一个计时器来重新加载表格视图确实是一种不好的做法。数据更改后,只需在需要时重新加载即可。
【讨论】:
嘿,你在使用线程吗?如果是,那么您需要确保在主线程上重新加载 tableview 数据 - 否则 tableview 在您滚动之前不会刷新
每 2 秒重新加载一次 tableview 也是最糟糕的编码方式。仅在实际需要时重新加载 tableview 数据
如果您不使用线程,请确保确实使用它们,这样当您触发 http 请求时,您的主线程和 ui 不会被阻塞,因为 http 请求需要一段时间才能完成。
【讨论】:
与 Marc 的响应几乎相同,但操作略有不同 - 在 cellForIndexPath 中设置一个断点,您可以在其中将数据加载到单元格中并查看(再次如 Marc 所述)您的新数据是否存在。
如果表格没有重新加载,那么您的数据就没有到达表格可以看到新内容的地方。
【讨论】: