Глядя на ваш пример кода, кажется, что вы пытаетесь получить:
describing: receivedData!["text"]
от
\(String(describing: receivedData!["text"]))
Проблема в том, что \(...)
в литерале String
приводит к интерполяции строки , где будет вычисляться выражение внутри \(
и )
, и это будет то, что будет находиться в строке , И String(describing: ...)
будет интерпретировать значение и вернет строковое представление. Итак, допустим, что receivedData!["text"]
содержит слово «Foo». Тогда
let data = "\(String(describing: receivedData!["text"]))"
В результате data
будет содержать строку, Optional("Foo")
.
Если вы хотите удалить эту Optional(...)
деталь, вы должны либо развернуть дополнительную, либо использовать оператор nil
коалесцирования, ??
. И, честно говоря, вместо использования строковой интерполяции я бы просто сделал:
let data = String(describing: receivedData?["text"] ?? "")