2017-09-08 54 views
0

我已經籤其他的解決方案,但沒有works.I需要每4秒後命中一個服務,所以我使用每4秒調用一次方法,但tableview不會同時加載?

var timer = NSTimer.scheduledTimerWithTimeInterval(4.0, target: self, selector: #selector(self.hitServiceUserChatMessageList), userInfo: nil, repeats: true) 

在這種HitServiceUserChatMessageList我重裝我的tableView。我能夠在每4秒後啓動服務,但tableview不顯示任何內容。它變成空白。

代碼HitServiceUserChatMessageList

func hitServiceUserChatMessageList() 
{ 
    //Start loader 
    spinner.startAnimation(nil) 
    spinner.hidden=false 

    //Hit service for login 
    let userName = GatyServiceManager.getValueForKey(Constants.key_UserEmailName) as! String 
    let sessionID = GatyServiceManager.getValueForKey(Constants.Key_SessionId) as! String 
    let userId = GatyServiceManager.getValueForKey(Constants.Key_SelectedUserForChat) as! String 

    GatyServiceManager.sharedInstance().hitServiceUserMessageForChat(userName, sessionId: sessionID, userId:userId) 
    { (success, error) in 
     if error == nil 
     { 
      self.spinner.stopAnimation(nil) 
      self.spinner.hidden=true 
      self.array_ChatMessages.removeAllObjects() 
      self.array_ChatMessages = GatyServiceManager.sharedInstance().array_allChats 

      self.tableViewChat.reloadData() 
      self.tableViewChat.scrollRowToVisible(self.array_ChatMessages.count - 1) 
     } 
     else 
     { 
      GatyServiceManager.sharedInstance().showAlertWithMsg(Constants.MSG_InvalidLogin) 
      self.spinner.stopAnimation(nil) 
      self.spinner.hidden=true 
      return 
     } 
    } 
} 
+0

你在調用'tableView.reloadData'嗎? – the4kman

+0

向我們顯示hitServiceUserChatMessageList。 – Willeke

+0

@Willeke我更新了代碼。請檢查。 –

回答

0

我得到了答案。其實,我有兩個數組self.array_ChatMessages和GatyServiceManager.sharedInstance()。array_allChats。

GatyServiceManager.sharedInstance()。array_allChats從服務器獲取數據,然後將其分配給self.array_ChatMessages。

有一次,我執行下面兩個命令,它從兩個數組中刪除數據,因爲它們都指向相同的內存位置。

self.array_ChatMessages.removeAllObjects() 
     self.array_ChatMessages = GatyServiceManager.sharedInstance().array_allChats 
+0

您可以刪除'self.array_ChatMessages.removeAllObjects()'。當您爲'self.array_ChatMessages'指定一個新值時,舊值將被釋放。 – Willeke

+0

是的,這是我現在所做的。謝謝。如果它的正確性請加註我的答案 –

相關問題