私はiMessageゲームを作っています。現在の iMessage セッションのみを表示し、以前のセッションはすべて最小化します。ターン ベースのゲームでは、ユーザーが戻って前のすべての動きを確認したくありません。
iOS 10 と Swift でこれを行うにはどうすればよいでしょうか?
会話内のすべてのメッセージで単一の MSSession を使用したいと考えています。
1. セッション変数 (メイン クラスで宣言)
class MessagesViewController: MSMessagesAppViewController {
var session: MSSession?
...
}
2.セッションの設定(アプリ起動時)
override func willBecomeActive(with conversation: MSConversation) {
if let selected = conversation.selectedMessage {
session = selected.session
}
}
3. セッションを使用する (MSMessage のビルド時)
if session == nil {
session = MSSession()
}
let message = MSMessage(session: session!)
完全なコード例
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!)
...
}
}