Ich versuche, die ‚gesendet‘ -Status mit JSQMessagesViewController
in JSQMessagesViewController
Ich habe eine Message Queue und einen Chat-View-Controller zu implementieren. Wenn die Nachrichtenwarteschlange eine bestimmte Nachricht erfolgreich sendet, möchte ich eine bestimmte Zelle im ChatViewController neu laden können.
Wie mache ich diese Art der Kommunikation zwischen der Nachrichtenwarteschlange und dem ChatVC? Hier
ist, was ich in der Lage gewesen zu tun -
Dies ist mein Message Queue -
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))
}
}
})
jetzt, was ich tun muß, ist den folgenden Code aufrufen - self.collectionView.reloadItemsAtIndexPaths()
von irgendwo innerhalb des ChatViewController . Dadurch wird die Nachrichtenzelle automatisch neu geladen und der Status aktualisiert.
Wie kann ich Code innerhalb des ChatViewController aufrufen und Daten (die MessageID) aus der Nachrichtenwarteschlange übergeben.