ios - View 加载时自动异步运行 UITableView 刷新功能

标签 ios swift uitableview asynchronous

我有以下刷新功能

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/

相关文章:

ios - 截断 NSAttributedString 中的部分字符串

iOS – 收到 UILocalNotification 后呈现 MFMessageComposeViewController

ios - App在ios中的本地化错误

swift - Firebase 规则 - 仅限于特定用户还是仅在获得授权的情况下?

ios - 如何删除 UITableViewCell 第一行的垂直间距

iOS:UIScrollView 不会向下滚动到其 subview 的底部

ios - 在整个应用程序中将默认字体更改为自定义字体

ios - collectionView.indexPathsForVisibleItems 未列出我知道可见的项目

iphone - 如何设置不同高度的 UITableViewCell 背景图片?

ios - Swift - 在 Controller 之间移动后表为空