#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 в отдельной строке, а затем использовать его в своем форматировании