You want to use a single MSSession across all the messages in the conversation.
1. The session variable (declared in the main class)
class MessagesViewController: MSMessagesAppViewController {
var session: MSSession?
...
}
2. Setting the session (when the app becomes active)
override func willBecomeActive(with conversation: MSConversation) {
if let selected = conversation.selectedMessage {
session = selected.session
}
}
3. Use the session (when building the MSMessage)
if session == nil {
session = MSSession()
}
let message = MSMessage(session: session!)
Full Code Example
class MessagesViewController: MSMessagesAppViewController {
var session: MSSession?
override func willBecomeActive(with conversation: MSConversation) {
if let selected = conversation.selectedMessage {
session = selected.session
}
}
func buildMessage() {
if session == nil {
session = MSSession()
}
let message = MSMessage(session: session!)
...
}
}