replacecingOccurrence работает в Playground, не работает в скомпилированном приложении macos - PullRequest
0 голосов
/ 15 апреля 2020

Я отправляю запрос POST на сервер и получаю ответ обратно. Все идет нормально. Когда я преобразовываю данные в (очень длинную) строку, ответ содержит обратную косую черту, которой там быть не должно.

«

Вот фрагмент кода, который обрабатывает запрос:

   let task = URLSession.shared.dataTask(with: request) { data, response, error in
        if let response = response, let data = data {
            print(response)               
            let str = String(data: data, encoding: .utf8)
            let replaced = str?.replacingOccurrences(of: "\\", with: "")
            print(replaced)
        } else {
            print(error)
        }
    }

Попытка заменить символ '\' на

let replace = str? .ReplacingOccursions (of: "\", with: "")

работает на детской площадке, однако отладка во время выполнения он не удаляет обратную косую черту.

Вопрос: есть ли ошибка в Xcode? В 2018 году с Xcode 9 был такой баг. Я использую Xcode 11.3 на macOS 10.14 для компиляции приложения macOS.

Второй вопрос, есть ли другой способ декодирования данных, чем использование

            let str = String(data: data, encoding: .utf8)

Спасибо

1 Ответ

0 голосов
/ 15 апреля 2020

Разобрался. Необходим для декодирования данных, а не для кодирования.

    let task = URLSession.shared.dataTask(with: request) { data, response, error in
        if let response = response, let data = data {
            print(response)                        
            let str = String(decoding: data, as: UTF8.self)
            print (str)


        } else {
            print(error)
        }
    }
...