MSMessage summaryText не последовательно отображает строку идентификатора участника

#ios #swift #msmessage

#iOS #быстрый #msmessage

Вопрос:

У меня возникли проблемы с получением сводного текста в сообщении для последовательного отображения имени, связанного с UUID, который передается вперед. Когда он не работает, на его месте отображается только пустая строка.

         let local = activeConversation!.localParticipantIdentifier
        let remote = activeConversation!.selectedMessage!.senderParticipantIdentifier

                if winningPlayer.id == localPlayer!.id {
                    layout.subcaption = "$(local) wins!"
                    message.summaryText = "$(local) won (scoreForLocalPlayer()) - (scoreForRemotePlayer())"
                }
                else {
                    layout.subcaption = "$(remote) wins!"
                    message.summaryText = "$(remote) won (scoreForRemotePlayer()) - (scoreForLocalPlayer())"
                }
 

Особенно странно здесь то, что layout.subcaption всегда показывает правильное имя, но message.summaryText обычно отображает только «выиграл 1 — 0», а не ожидаемое «(имя победителя) выиграл 1 — 0».

Комментарии:

1. Какой тип local ?

2. Я имею в виду, если это строка, вы можете просто объединить эти строки, например local " won (localScore()) - (remoteScore())"

3. Так local и remote UUID, которые поступают от MSConversation объекта, и этот причудливый синтаксис с $ — это своего рода магия, которую messages использует для преобразования этого в соответствующее имя в контактах из соображений безопасности и тому подобное.

4. Хорошо, какой-то внутренний голос говорит мне, что вы должны использовать этот $ magic в отдельной строке, а затем использовать его в своем форматировании