如何使用新的抓取重新加载数据?

时间:2015-09-24 22:57:19

标签: swift swift2

当我加载视图并调用didload时,我从Core Data执行了fetch。例如,我有10行记录,现在当我添加新行时,我有1到11行。但是在我添加一个新行之后,我想再次加载最后10行的表视图。如何使用与tableView.reloadData()相同的抓取执行方式调用didload

 override func viewDidLoad() {
        super.viewDidLoad()

        fetchedResultsController = NSFetchedResultsController(fetchRequest: MInstance.getMessagesList(), managedObjectContext: managedObjectContext!, sectionNameKeyPath: nil, cacheName: nil)
        fetchedResultsController?.delegate = self
        do { try fetchedResultsController?.performFetch() } catch _ {}

        // Refresh table view
        chatTableView.reloadData()
    }

3 个答案:

答案 0 :(得分:1)

您应该实现NSFetchedResultsController

的以下委托方法
controllerWillChangeContent(_:)
controller(_:didChangeObject:atIndexPath:forChangeType:newIndexPath:)
controller(_:didChangeSection:atIndex:forChangeType:)
controllerDidChangeContent(_:)

参考https://developer.apple.com/library/prerelease/ios/documentation/CoreData/Reference/NSFetchedResultsControllerDelegate_Protocol/index.html#//apple_ref/doc/uid/TP40008228-CH1-SW13

答案 1 :(得分:0)

belongs_to部分中,您可以返回最低10分和FRC找到的项目数。然后,您的tableView刷新应限制为10行。

答案 2 :(得分:0)

你应该使用

override func viewDidAppear(animated: Bool) { 

        dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)) {

         chatTableView.reloadData()

        }

}

然后编辑

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

        return 10

}