2017-02-16 9 views
2

я перевожу в Android приложение для прошивкой с быстрой 3. Моей проблемы заключается в следующем блоке Java кода:Как получить массив байтов из base64 в swift 3?

String b64 = "KJT-AAAhtAvQ"; 
byte[] bytesCodigo = Base64.decode(b64, Base64.URL_SAFE); 
System.out.Println(bytesCodigo.length) // 9 

Как бы это быть в стриже?

Благодаря

+0

Вы видели это http://stackoverflow.com/questions/29365145/how-to-encode-string-to-base64-in-swift? – Dribbler

+0

Обычно вам не нужны массивы байтов. Это то, что «Данные» * для * – Alexander

ответ

5

Как правило, вы бы просто создать Data/NSData от базового 64 строки, а не массив байтов. Обратите внимание, однако, что стандарт Data(base64Encoded:) не имеет «URL Safe», поэтому вы захотите заменить «-» на «+» и «_» на «/», прежде чем пытаться его преобразовать:

let b64 = "KJT-AAAhtAvQ" 
    .replacingOccurrences(of: "-", with: "+") 
    .replacingOccurrences(of: "_", with: "/") 
let data = Data(base64Encoded: b64)! 
print("\(data.count)") 

Затем вы можете преобразовать это в массив байтов, но зачем вам это делать? Если вы покажете нам, с чем вы это используете, мы можем посоветовать дальше. Большинство функций Swift, которые ищут двоичные данные, обрабатывают объекты Data, а не массивы байтов.

Смежные вопросы