私は、ファイルから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);