如何更新tableview json
问题描述:
我想在更改mysql数据库中的数据后更新我的tableview数据,但它不工作。在我parsejson功能我试着用:如何更新tableview json
dispatch_async(dispatch_get_main_queue(),{
self.movies = movieArray
self.tableView.reloadData()
当然这是行不通的,因为这个功能是不是在tableviewcontroller所以它不能识别的tableview。是否有可能从tableviewcontroller另一个文件中的函数重新加载tableview,以及如何?
问候
答
您更新数据后,通知你的tableviewController到UPDATA它的模型,之后重装你的tableview。
答
使用Swift Closures。代码
部件看起来就像是:
DataLoader.swift
class DataLoader: NSObject {
func uploadData(completion: ([AnyObject]) ->()) {
let priority = DISPATCH_QUEUE_PRIORITY_DEFAULT
dispatch_async(dispatch_get_global_queue(priority, 0)) {
let array = [1, 2, 3, 4] //load your data in background thread
dispatch_async(dispatch_get_main_queue()) {
completion(array) //send completion in main thread
}
}
}
}
ViewController.swift
class ViewController: UIViewController {
let dataLoader = DataLoader()
override func viewDidLoad() {
super.viewDidLoad()
self.dataLoader.uploadData {
(any) in
if let movieArray = any as? [Int] { //Here instead of [Int] should be your array of objects e.g. [Movies]
print("result: \(movieArray)")
self.movies = movieArray
self.tableView.reloadData()
}
}
}
}