我下面有segmentedControl
和tableView
。
SegmentedControl
有两个部分:'新闻'和'事件'。
新闻和活动会下载到var news = [News]()
的{{1}}。
对于新闻 - func getJson(type: Int)
,对于活动news.type = 1
。
我的news.type = 2
方法是:
getJson
所以问题是当我滚动并立即点击第二段时,应用程序崩溃:
因为func getJson(type: Int) {
self.news = [] // empty news array
if jsonData["type"] == type {
// save needed news to array
self.news.append(News(id: jid, title: jtitle, subtitle: jsubtitle, urlstring: jurlstring, image: jimage!))
}
}
中的self.news = []
和self.news.append
之间有getJson
。
我的问题是如何在点按细分时停止cellForRowAtIndexPath
?感谢。
答案 0 :(得分:2)
如果您从网络加载数据的代码正在弄乱正在推动您的tableview的数组,那么您将遇到问题......而且您确实存在问题。
典型的方法是将数据加载到网络加载代码中的临时数组中,然后在加载完成后将其分配给实际数组(在您的情况下为self.news
)并在此时调用{{ 1}}在你的桌面视图上。
您可能还想在加载数据时考虑用户体验。我可能会做这样的事情:
reloadData