Convirtiendo entre cadenas NSData y base64

¿Cuál es el código más fácil y más rápido para hacer una conversión entre NSData y una cadena base64? He leído un montón de soluciones en SO y sobre todo implican agregar otra clase, etc. Encontré una gran solución aquí, pero es demasiado compleja.

Desplácese hasta la sección Conclusión en la página que enlazó y descargue los archivos NSData + Base64 proporcionados . Es la mejor solución que he visto hasta ahora y es increíblemente fácil de usar. Si puede aprender algo sobre Cocoa, puede aprender a usar ese proyecto.


Ejemplo

 NSString *originalString = [NSString stringWithFormat:@"test"]; NSData *data = [NSData dataFromBase64String:originalString]; NSLog([data base64EncodedString]); 

Lo anterior imprimirá la cadena original después de convertirla a base64 y volver a una cadena no codificada normal.

A partir de iOS 7, NSData ahora proporciona directamente esta funcionalidad con los nuevos métodos -base64EncodedDataWithOptions: y -base64EncodedStringWithOptions: (Las opciones le permiten especificar que la cadena es / debe estar en línea, mejor para tratar con el correo electrónico y las pantallas orientadas al usuario.)

No necesita ninguna implementación personalizada. La creación de base64 desde NSData se muestra en otras respuestas. Hay una dirección opuesta. De la cadena Base64 a NSData:

  NSString *base64Encoded = @"some base64 string"; NSData *nsdataFromBase64String = [[NSData alloc] initWithBase64EncodedString:base64Encoded options:0]; 

Terminé usando esta misma clase proporcionada por SUDZC

la implementación fue fácil primero hice una importación

  #import "NSData+Base64.h" 

luego pude llamar mis datos.

  NSData *data = [[NSData alloc] initWithData:[NSData dataWithBase64EncodedString:strData]]; 

O puede echarle un vistazo al (bastante nuevo) proyecto de muestra CryptoCompatibility , creo que hay una clase contenedora para la operación de base64. Es una muestra de MacOS, pero utiliza la biblioteca libresolve.dylib con la que creo que también está disponible en iOS (es verla al menos aquí en iOS7).