在视图加载时自动和异步地运行UITableView刷新功能

时间:2015-07-06 18:21:28

标签: ios swift uitableview asynchronous

我有以下刷新功能

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()

1 个答案:

答案 0 :(得分:0)

如果您想了解iOS中的多线程/后台处理,我建议您使用本教程:

http://www.raywenderlich.com/79149/grand-central-dispatch-tutorial-swift-part-1

它完美地解释了GCD(Grand Central Dispatch)以及如何应用它。