我有以下刷新功能
func refresh(refreshControl: UIRefreshControl) {
self.newsArray = [NewsItem]()
self.newslists = [[NewsItem]]()
self.getNewsFromServer()
self.getNewsFromCoreData()
self.tViewNews.reloadData()
refreshControl.endRefreshing()
}
它工作完美,正是我想要的方式,并且我可以根据需要多次刷新。
有什么方法可以在我从核心数据填充的代码之后直接在 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()
最佳答案
如果你想了解 iOS 中的多线程/后台处理,我会推荐你这个教程:
http://www.raywenderlich.com/79149/grand-central-dispatch-tutorial-swift-part-1
它完美地解释了 GCD(Grand Central Dispatch)以及如何应用它。
关于ios - View 加载时自动异步运行 UITableView 刷新功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31252952/