2016-10-20 3 views
2

Есть ли способ конвертировать строку в двоичный файл в Swift?Преобразование строки в двоичный файл в swift?

Найдено this link на SO, но он обрабатывает только десятичные знаки. Я также пытаюсь преобразовать специальные символы и буквы.

Пробовал строить массив известных символов ASCII и сравнивать их (работал для букв), но столкнулся с проблемами, сравнивающими специальные символы.

Оцените ваши ответы.

+0

Я хочу, чтобы разбить строку вниз в 1-х и нулей, независимо от того, что строка содержит. Затем оттуда я перейду на фазу 2 ... – AMAN77

ответ

6

Использование func data(using encoding: String.Encoding, allowLossyConversion: Bool = default) -> Data?

Пример:

Swift 3

let string = "The string" 
let binaryData: Data? = string.data(using: .utf8, allowLossyConversion: false) 

EDIT: Или ждать, вам нужно бинарное представление вами данных или строку 0/1?

EDIT: Для строки 0/1 используйте что-то вроде:

let stringOf01 = binaryData?.reduce("") { (acc, byte) -> String in 
    acc + String(byte, radix: 2) 
} 

EDIT: Swift 2

let binaryData = str.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false) 
+0

Да пыталась получить 0101010 своего рода стиль – AMAN77

+0

Это отлично работает для swift3 спасибо :), как вопрос общественного интереса вы, возможно, знаете, как это было бы сделано в swift2 также? – AMAN77

+0

@ AMAN77, 'Data -> NSData',' .data (с использованием: ... -> .dataUsing (... ', только имена отката. – user28434