2017-02-16 100 views
2

我翻譯一個Android應用程序到iOS與SWIFT 3.我的問題是使用Java代碼的下一個塊:如何在swift 3中從base64獲取一個字節數組?

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

通常你只需創建從基64字符串,而不是字節的陣列的Data/NSData。但請注意,標準Data(base64Encoded:)沒有「網址安全」格式,因此您需要在嘗試轉換「+」前用「/」替換「 - 」,然後再嘗試轉換它:

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

然後,您可以將其轉換爲字節數組,但爲什麼要這樣做?如果您向我們展示您使用的是什麼,我們可以進一步提供建議。大多數尋找二進制數據的Swift函數處理的是對象而不是字節數組。

相關問題