2016-12-20 3 views
4

Здесь я кодирую мою строку, но она дает ошибку, указанную выше. Что я сделал:Значение типа «Данные?» не имеет элемента base64EncodedStringWithOptions '

let plainData = (password)?.data(using: String.Encoding(rawValue: String.Encoding.utf8.rawValue)) 
let base64String = plainData.base64EncodedStringWithOptions(NSData.Base64EncodingOptions.init(rawValue: 0)) 

Это дает мне ошибку во второй строке кода. Если кто-нибудь может помочь!

+0

', если позволить plainData = пароль .data (с помощью: .utf8)?, пусть base64String = plainData.base64EncodedData() {' –

ответ

3

Фактически с обновлением быстрой версии это дает ошибку. Мы можем сделать что-то вроде:

let plainData = (password)?.data(using: String.Encoding(rawValue: String.Encoding.utf8.rawValue)) 
let base64String = plainData?.base64EncodedData(options: NSData.Base64EncodingOptions.init(rawValue: 0)) 

Это решило мою проблему.

+0

Вы можете написать его в немного короче: 'let plainData = password? .data (using: .utf8)' 'let base64String = plainData? .base64EncodedData()' – OOPer

6

Вы должны использовать функцию NSData base64EncodedString().

let base64String = plainData?.base64EncodedString()

Это работает с Swift 3.0

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