【发布时间】:2015-07-28 07:29:25
【问题描述】:
我有一个表格视图来显示从 API 获取的列表。
首先,我将 API 数据存储到 Core Data,然后在后续应用启动时,我将尝试更新列表。
我需要在后台线程中处理更新操作。应该在启动特定 ViewController 5 秒后调用更新操作
func updateGlossary() {
var GlobalMainQueue: dispatch_queue_t {
return dispatch_get_main_queue()
}
let delayInSeconds = 5.0
let popTime = dispatch_time(DISPATCH_TIME_NOW,
Int64(delayInSeconds * Double(NSEC_PER_SEC)))
dispatch_after(popTime, GlobalMainQueue) {
self.showAlertMessage(message: "Updating Glossary")
DataStore.GetToken({ (token, error) in
//Got Token
//Call the API for updated data and store it to core data
})
}
}
这里面有两个问题;
- 进行更新时 UI 被阻止
- 当我在更新操作开始之前从控制器返回时,它仍然会从其他控制器更新(我认为问题是因为排队)
我正在使用 Swift、Alamofire、Core Data
【问题讨论】:
标签: ios multithreading swift core-data alamofire