target-c преобразовать файл jpg в массив байтов - PullRequest
1 голос
/ 08 января 2012

Я пытаюсь прочитать файл jpg и преобразовать его в массив байтов. Это следующий код, этот код отлично работает с текстовыми файлами, но файлы с файлами изображений

// стартовый код

NSString *stringFromFileAtPath = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&error];

if(stringFromFileAtPath == nil){
    NSLog(@"Error reading file at path %@\n%@", path, [error localizedFailureReason]);
    }
NSLog(@"Contents:%@", stringFromFileAtPath);

NSData *bytes = [stringFromFileAtPath dataUsingEncoding:NSUTF8StringEncoding];
NSLog(@"Bytes:%@", bytes);

// конец кода

и это сообщение об ошибке, которое я получаю Сообщение об ошибке: Кодировка текста Unicode (UTF-8) не применима.

Дайте мне знать, что это за ошибка, яя делаю или код для преобразования файла JPG в байтовый массив

1 Ответ

4 голосов
/ 08 января 2012

Почему бы просто не использовать NSData initWithContentsOfFile: метод?Смотрите здесь:

т.е.:

NSData *bytes = [[NSData alloc] initWithContentsOfFile:path];
NSLog(@"Bytes:%@", bytes);

Причина, по которой вы не можете сделать то, что вы сделали, заключается в том, что выПопытка прочитать файл изображения, как если бы он был закодирован в UTF8, что весьма вероятно, что в нем есть байты, которые будут искажены в UTF8 - это не строка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...