1

私はiMessageゲームを作っています。現在の iMessage セッションのみを表示し、以前のセッションはすべて最小化します。ターン ベースのゲームでは、ユーザーが戻って前のすべての動きを確認したくありません。

iOS 10 と Swift でこれを行うにはどうすればよいでしょうか?

4

1 に答える 1

3

会話内のすべてのメッセージで単一の 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!)

        ...
    }
}
于 2016-09-20T20:37:48.447 に答える