2016-04-23 73 views
0

我想在更改mysql數據庫中的數據後更新我的tableview數據,但它不工作。在我parsejson功能我試着用:如何更新tableview json

dispatch_async(dispatch_get_main_queue(),{ 

        self.movies = movieArray 
        self.tableView.reloadData() 

當然這是行不通的,因爲這個功能是不是在tableviewcontroller所以它不能識別的tableview。是否有可能從tableviewcontroller另一個文件中的函數重新加載tableview,以及如何?

問候

回答

0

您更新數據後,通知你的tableviewController到UPDATA它的模型,之後重裝你的tableview。

0

使用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() 
      } 
     } 
    } 
}