Что вы подразумеваете под «двоичным выходом», неясно. Если вы ожидаете, что строка содержит текст в строках «01010100011110110» или «0x1337abef», вы ошибаетесь в том, как работает NSString. NSString's initWithData:encoding:
пытается интерпретировать байты данных, как если бы они были байтами строки в конкретной кодировке. Это противоположность dataUsingEncoding:
NSString - вы можете позвонить initWithData:encoding:
с результатом dataUsingEncoding:
и вернуть ту же строку.
Если вы хотите преобразовать данные в, скажем, читаемую человеком строку шестнадцатеричных цифр, вам нужно будет сделать преобразование самостоятельно. Вы могли бы сделать что-то вроде этого:
NSMutableString *binaryString = [NSMutableString stringWithCapacity:[data length]];
unsigned char *bytes = [data bytes];
for (int i = 0; i < [data length]; i++) {
[binaryString appendFormat:@"%02x", bytes[i]];
}
Каков ваш желаемый результат? – kennytm
Строка двоичных данных. – Ricky