【发布时间】:2017-10-03 16:38:14
【问题描述】:
在UIViewController 的viewDidLoad() 中有一个方法被调用来更新一个类变量。一旦我导航到另一个视图控制器并返回到这个视图控制器,UITableView 的委托方法将首先在使用该类变量的地方被调用。应用程序正在崩溃,因为该变量是在 viewDidLoad() 中构造的。如何解决这个问题?谢谢。
有问题的类变量:
var showHideDict = Dictionary<Int, Bool>()
viewDidLoad():
override func viewWillAppear() {
super.viewWillAppear()
makeAPICall()
}
API调用方式:
func makeAPICall() {
// create helper object
let helper = ModelHelper()
helper.createModels(receivedDict: result! as NSDictionary)
// store the showHideDict
for index in 0...(Modelclass.models.count - 1) {
self.showHideDict[index] = true
}
DispatchQueue.main.async {
self.tableView.reloadData()
}
}
【问题讨论】:
-
通过发布代码而不是在句子中解释您的代码。到目前为止,这听起来应该是开箱即用的,或者是 stackoverflow.com/questions/46521391/xcode-swift-viewdidload 的副本
-
添加代码而不是解释。感谢您的回复。
-
你为什么打电话给
viewWillAppear()?不应该是super.viewWillAppear()吗? -
改变了它。谢谢!
-
在init()中构造变量
标签: ios swift uitableview viewdidload