每 4 秒调用一次方法,但同时不加载 tableview?
Calling a method after every 4 secs but tableview doesn't load meanwhile?
我已经检查了其他解决方案,但没有任何东西 works.I 需要每 4 秒后点击一次服务,所以我正在使用
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
}
}
}
我得到了答案。实际上,我有两个数组 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
我已经检查了其他解决方案,但没有任何东西 works.I 需要每 4 秒后点击一次服务,所以我正在使用
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
}
}
}
我得到了答案。实际上,我有两个数组 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