我有以下刷新功能
func refresh(refreshControl: UIRefreshControl) {
self.newsArray = [NewsItem]()
self.newslists = [[NewsItem]]()
self.getNewsFromServer()
self.getNewsFromCoreData()
self.tViewNews.reloadData()
refreshControl.endRefreshing()
}
它完美无缺,就像我想要的那样,我可以根据自己的需要刷新次数。
有没有办法可以在我从Core Data填充的代码后直接在viewDidLoad()
中自动运行此刷新功能。
(最好完全在后台工作,没有加载标志)
我做了什么
override func viewDidLoad() {
super.viewDidLoad()
println("Getting news from Core Data")
getNewsFromCoreData()
// refreshing asynchronously
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), {
self.newsArray = [NewsItem]()
self.newslists = [[NewsItem]]()
self.getNewsFromServer()
self.getNewsFromCoreData()
dispatch_async(dispatch_get_main_queue(), {
self.tViewNews.reloadData()
});
})
或
override func viewDidLoad() {
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), {
refresh()
答案 0 :(得分:0)
如果您想了解iOS中的多线程/后台处理,我建议您使用本教程:
http://www.raywenderlich.com/79149/grand-central-dispatch-tutorial-swift-part-1
它完美地解释了GCD(Grand Central Dispatch)以及如何应用它。