在 JSQMessagesViewController 中实现消息传递状态
Implement message delivery status in JSQMessagesViewController
我正在尝试使用 JSQMessagesViewController
实现“已发送”状态
我有一个消息队列和一个聊天视图控制器。当消息队列成功发送特定消息时,我希望能够重新加载 ChatViewController 中的特定单元格。
如何在消息队列和 ChatVC 之间进行这种通信?
这是我能够做到的 -
这是我的消息队列 -
var unsentMessages = [String]() {
didSet {
// Check if a new value is being added or removed
// If a new value is added then the oldValue will anve less elements than the original unsentMessages list
if oldValue.count < unsentMessages.count {
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), {
newValue in
let messageID = unsentMessages.last
let realm = try! Realm()
for i in 1...10 {
if channel.subscribed {
let message = realm.objectForPrimaryKey(Message.self, key: messageID)
channel.trigger("client-message", data: (message?.pusherMessage())!)
unsentMessages.popLast()
break
} else {
let time = 2 << UInt(i)
sleep(UInt32(time))
}
}
})
现在我需要做的是从 ChatViewController 中的某处调用以下代码 - self.collectionView.reloadItemsAtIndexPaths()
。这会自动重新加载消息单元格并更新状态。
如何在 ChatViewController 中调用代码并从消息队列传递数据(messageID)。
为什么不在消息发送成功后直接在您的 chatVC 上调用 reload()
。
我正在尝试使用 JSQMessagesViewController
我有一个消息队列和一个聊天视图控制器。当消息队列成功发送特定消息时,我希望能够重新加载 ChatViewController 中的特定单元格。
如何在消息队列和 ChatVC 之间进行这种通信?
这是我能够做到的 -
这是我的消息队列 -
var unsentMessages = [String]() {
didSet {
// Check if a new value is being added or removed
// If a new value is added then the oldValue will anve less elements than the original unsentMessages list
if oldValue.count < unsentMessages.count {
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), {
newValue in
let messageID = unsentMessages.last
let realm = try! Realm()
for i in 1...10 {
if channel.subscribed {
let message = realm.objectForPrimaryKey(Message.self, key: messageID)
channel.trigger("client-message", data: (message?.pusherMessage())!)
unsentMessages.popLast()
break
} else {
let time = 2 << UInt(i)
sleep(UInt32(time))
}
}
})
现在我需要做的是从 ChatViewController 中的某处调用以下代码 - self.collectionView.reloadItemsAtIndexPaths()
。这会自动重新加载消息单元格并更新状态。
如何在 ChatViewController 中调用代码并从消息队列传递数据(messageID)。
为什么不在消息发送成功后直接在您的 chatVC 上调用 reload()
。