Я работаю над перекодированием данных изображения из файла в строку с кодировкой base64, а затем обратно в байты, когда файл читается с использованием NSStream. Я думаю, что почти у цели, но я продолжаю сталкиваться с EXC_BAD_ACCESS в разные моменты во время преобразования.
Я новичок в мире NSStream и буферов, поэтому не стесняйтесь, дайте мне знать, если я использую здесь абсолютно неправильный подход.
Вот что у меня есть:
// Copy the bytes from our file input stream buffer
void *base64buffer = malloc(self.buffer[self.bufferOffset]);
// Convert the bytes to NSData for the base64 encode
NSData *dataToEncode = [NSData dataWithBytesNoCopy:base64buffer length:sizeof(base64buffer) freeWhenDone:YES];
// Convert our NSData into a base64 encoded string
NSString *base64EncodedData = [dataToEncode base64EncodedString];
// Convert our base64 encoded string back into NSData
NSData *encodedData = [base64EncodedData dataUsingEncoding:NSUTF8StringEncoding];
// Write the bytes to our output stream
bytesWritten = [self.producerStream write:[encodedData bytes] maxLength:[encodedData length]];
// Clean up
dataToEncode = nil;
base64EncodedData = nil;
encodedData = nil;
free(base64buffer);