У меня есть очень длинная строка base64, которую я сгенерировал в своем приложении для iOS, я печатаю ее вот так print(longBase64)
, Xcode напечатал ее, но в журналах она усечена, вот как она выглядит в конце строки base64
k+WP7PFGn/LX/wDV/k96uW8SyNCbdPJs0j8v93j/AFUX/LHyM8Y9d35nIp1<…>
как вы можете видеть, <...>
не является символом base64, что означает, что Xcode усек его.
Вот как я генерирую эту строку base64
extension UIImage {
func toBase64() -> String {
return jpegData(compressionQuality: 1)?.base64EncodedString() ?? ""
}
}
Я хочу видеть всю строку base64, чтобы можно было использовать ее в других целях, например postman
Вопрос в том, как мне получить всю эту строку base64?
@matt, это возможное решение, но как мне записать это в файл? Я запускаю свое приложение на реальном устройстве. Есть ли способ писать из Xcode на мой MacBook, одновременно запуская приложение на устройстве?
Вы можете легко записать файл на устройстве, а затем скопировать его на MacBook.
Вы запускаете приложение на устройстве, но запускаете его из XCode, поэтому в консоли получаете обрезанный print(...)
. Аналогичным образом, если вы временно отключите песочницу, вы записываете в файл, и он создается на вашем MacBook. try base64String.write(to: fileURL, atomically: true, encoding: .utf8)
Предполагая, что вы имеете в виду, что хотите иметь возможность скопировать/вставить полученную строку Base64 из Xcode в другое место...
Используя ваше расширение и этот код:
guard let img = UIImage(named: "test") else { return }
let b64: String = img.toBase64()
// just to see the string length in debug console
print(b64.count)
print()
Установите точку останова в последней строке print()
. Когда Xcode сломается, наведите указатель мыши на b64
:
Нажмите значок «глаз» справа:
Затем вы можете нажать «Открыть с помощью TextEdit», и у вас должна быть вся строка.
Примечание. Если вы генерируете «чрезвычайно длинную строку base64», Xcode может потребоваться много времени, чтобы показать это — например, несколько секунд — когда вы можете подумать, что она «зависла» или вышла из строя.
Я только что попробовал это с print(b64.count)
выводом 5001316
... не знаю, считаете ли вы это «чрезвычайно длинным».
Записать в файл?