Невозможно закодировать строку в utf8 и utf8 в base64 в быстром режиме

Я ищу способ кодировать строку в UTF8, а затем в базу 64 в Swift 3.x.

В Swift 2.x я использовал этот способ:

let pass: NSString = "test"    
let variable: NSString = (pass.dataUsingEncoding(NSUTF8StringEncoding)?.base64EncodedStringWithOptions([]))!

XCode заставляет меня поставить: NSUTF8StringEncoding.rawValue, и тогда результат неверен.

Если у кого-то есть решение :)

Благодарить


person Snooze    schedule 29.11.2016    source источник
comment
Вы говорите, что в Swift 2.x я использовал. Ваш вопрос спрашивает, как написать этот код в Swift 3?   -  person rmaddy    schedule 30.11.2016
comment
@rmaddy да, я хотел бы сделать это в Swift 3   -  person Snooze    schedule 30.11.2016
comment
Вы должны указать это в своем вопросе.   -  person rmaddy    schedule 30.11.2016


Ответы (1)


В Swift 3 теперь аккуратнее:

let pass = "test"
let variable = pass.data(using: .utf8)!.base64EncodedString()

И вы можете использовать переменные с лучшими именами, чем variable.

Если вам нужно разобраться с NSString:

let pass: NSString = "test"
let variable = (pass as String).data(using: .utf8)!.base64EncodedString()
person Codo    schedule 29.11.2016
comment
Он отлично работает на странице iOS Playground. Речь идет об iOS (а не macOS), верно? - person Codo; 30.11.2016
comment
@Snooze Обратите внимание, что в этом ответе NSString не используется. Используется стандартный Swift String. - person rmaddy; 30.11.2016