我有一个带有ContainerView(连接到空白UIView)的UIViewController和一个表。有时它会正确显示(我在viewDidLoad中加载JSON数据),但有时候整个视图都是黑色的。我试图将其指向某个布局更改,因此我撤消了更改(再次正确显示视图),然后完全像之前一样重新更改了更改(视图仍然正确显示)。
视图为黑色时没有崩溃或任何错误消息。该程序似乎仍然在后台运行,我可以使用TabBar切换到其他部分。
代码中唯一出现问题的迹象是,
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
永远不会打电话给。但是如果TableView失败,为什么整个ViewController都没有显示?
编辑:viewdidload的代码。
let tURL = NSURL(string: "<urlofjsonfile>")
var JSONData:NSData? = nil
do {
JSONData = try NSData(contentsOfURL: tURL!, options: [])
} catch {
print("\(error)")
}
if let json = (try? NSJSONSerialization.JSONObjectWithData(JSONData!, options: [])) as? NSDictionary {
if let serienstartJsonArray = json["sendungen"] as? [NSDictionary] {
for item in serienstartJsonArray {
let meldung=SerienDataModel(json: item)
seriendaten.append(meldung)
}
arrSectionStart.append(0)
if let id = json["anzahl1"] as? Int {
arrSectionRows.append(id+1)
} else {
arrSectionRows.append(0)
}
if let numb2 = json["anzahl2"] as? Int {
arrSectionStart.append(arrSectionRows[0]+1)
arrSectionRows.append(numb2)
} else {
arrSectionRows.append(0)
arrSectionStart.append(1)
}
arrSectionStart.append(arrSectionRows[0]+arrSectionRows[1]+3)
if let numb3 = json["anzahl3"] as? Int {
arrSectionRows.append(numb3)
} else {
arrSectionRows.append(0)
}
} else {
print("Error creating dictionary")
}
} else {
print("Error NSJSONSerialization")
}
答案 0 :(得分:0)
您在viewDidLoad
:
JSONData = try NSData(contentsOfURL: tURL!, options: [])
永远不要永远不要那样做。除了在后台线程上,不要同步网络。正确(异步)网络,然后在主线程上更新模型和接口。