2015-06-10 52 views
1

大家早上好,我怎麼能告訴Swift等到我的價值被下載?

這是我的問題,我想創建一個UITableView JSON我從我的網站API獲得。

的問題是,他第一次執行覆蓋功能的tableview和我的JSON數據尚未下載,我測試過,並在打印的所有單元格它的下載(有沒有價值,用於測試)。

這裏是我的功能:

func loadOrders() 
{ 
    Alamofire.request(.GET, "myurlthatIhidebutworks").responseJSON() { (request, response, data, error) in 
     println(request) 
     println(response) 
     println(data) 
     println(error) 
     self.allOrders = JSON(data!) 
    } 
} 

我試圖使它在viewDidLoadviewWillAppear這樣發生,但它不工作。

dispatch_async(dispatch_get_main_queue()) { 
     self.loadOrders() 
} 

我會很感激一些幫助,謝謝大家:)

+0

沒有理由使用dispatch_async打電話給你的loadOrders方法。該方法已經是異步的。只需調用'self.loadOrders()'而不用dispatch_async包裝器。 –

回答

2

早上好, 在你的函數loadOrders結束()重裝你的tableView:

func loadOrders() 
{ 
    Alamofire.request(.GET, "myurlthatIhidebutworks").responseJSON() { (request, response, data, error) in 
    println(request) 
    println(response) 
    println(data) 
    println(error) 
    self.allOrders = JSON(data!) 

    // Add this for example 
    if data != nil 
    { 
     self.tableView.reloadData() 
    } 
} 

reloadData()方法將調用所有的委託方法。

+0

不幸的是,我仍然有致命誤差零值發現:(我應該在哪裏加載loadOrders()?我想viewDidLoad中()和viewWillAppear中卻是這樣嗎?已經感謝您的回答 – Dinosan0908

+0

做任何修改之前,你的代碼工作? – Masterfego

+0

我有一個初始化的問題太多,所以它解決了感謝你:)祝你有美好的一天!再次感謝 – Dinosan0908

1

應該像這樣工作

func loadOrders() 
{ 
    Alamofire.request(.GET, "myurlthatIhidebutworks").responseJSON() { (request, response, data, error) in 
     dispatch_async(dispatch_get_main_queue()) { 
       if(error != nil){ 
       println(response) 
       println(data) 
       println(request) 
       self.allOrders = JSON(data!) 
       } 
       else{ 
       println(error) 
       } 
     } 
    } 
} 
+0

不幸的是,我仍然有致命的錯誤找到零值:(我應該在哪裏加載loadOrders()?我試過ViewDidLoad()和Viewwillappear,但是這樣嗎?已經謝謝你的回答 – Dinosan0908

+0

loadOrders首先它應該在ViewDidLoad中 –

+0

謝謝你們<3現在的工作!有一個愉快的一天:) – Dinosan0908

相關問題