¿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 here pero es demasiado compleja.Convirtiendo entre cadenas NSData y base64
Respuesta
Desplácese hasta la sección Conclusión sección en the page you linked y download the provided NSData+Base64 files. 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 la conversión a base64 y de vuelta a una cadena sin codificar normal.
He descargado los dos, entonces ¿necesito agregar ese proyecto a mi o puedo simplemente arrastrar NSData + Base64? – aherlambang
Quiere agregar los dos archivos a su proyecto. Generalmente, cuando ve nombres como 'NSData + Base64', lo primero que debe pasar por su cabeza es que esta es una categoría de la clase' NSData'. En otras palabras, solo llama a estos nuevos métodos usando 'NSData', no una nueva clase' Base64'. –
Creo, sin embargo, que aún necesita importar la categoría. Personalmente, recomendaría ponerlo en su encabezado precompilado para que pueda usar los métodos en 'NSData' desde cualquier lugar de su proyecto. –
Terminé usando esta misma clase que proporciona SUDZC
aplicación fue fácil primero que hice una importación
#import "NSData+Base64.h"
entonces yo era capaz de llamar a mis datos.
Todo lo que obtengo es archivo 'NSData + Base64.h' no encontrado. – Martin
@Martin Utilicé las clases generadas por [sudzc] (http://www.sudzc.com) lib, crea esta clase para usted que luego puede importar en su archivo de implementación (.m) – SeeCoolGuy
O usted puede echar un vistazo a la (bastante nuevo) proyecto de ejemplo CryptoCompatibility, creo que hay una clase de contenedor para la operación base 64. 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).
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 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 cadena Base64 a NSData:
NSString *base64Encoded = @"some base64 string";
NSData *nsdataFromBase64String = [[NSData alloc] initWithBase64EncodedString:base64Encoded options:0];
Esto fue agregado en iOS 7/OSX 10.9 y es la mejor solución que se ofrece aquí. [Documentación aquí] (https://developer.apple.com/library/ios/documentation/cocoa/Reference/Foundation/Classes/NSData_Class/index.html#//apple_ref/occ/instm/NSData/initWithBase64EncodedString:options :) . – jonstaff
Esa debería ser la respuesta aceptada ... – csblo
Acepto que esta debería ser la respuesta aceptada. – Wayne
- 1. Convirtiendo NSData en NSDictionary
- 2. Conversión de NSData a base64
- 3. Convirtiendo HEX NSString a NSData
- 4. convirtiendo el objeto NSDictionary al objeto NSData y viceversa
- 5. convirtiendo manualmente entre caracteres ASCII y .NET
- 6. convirtiendo el archivo de imagen a base64 String usando javascript
- 7. Conversión de NSString a NSData y viceversa
- 8. base64 codificación cadenas unicode en python 2.7
- 9. convirtiendo símbolos en cadenas sin evaluación
- 10. Convirtiendo imagen base64 a multipart/form-data y enviando con jQuery
- 11. Convirtiendo imagen en datos: image/png; base64 para la página web disaplay
- 12. cuáles son las diferencias entre PHP base64_encode y * nix base64
- 13. Convirtiendo entre horas locales y GMT/UTC en C/C++
- 14. iPhone - int a NSData?
- 15. ¿Cómo codifico/decodifico cadenas cortas como Base64 usando GWT?
- 16. La mejor manera de separar dos cadenas base64
- 17. En Android, ¿cómo concatenar cadenas codificadas en base64?
- 18. convirtiendo python lista de cadenas en su tipo
- 19. Diferencia entre cadenas entre comillas simples y dobles en ActionScript
- 20. convirtiendo la lista de cadenas en listas de números enteros
- 21. Crear una cadena base-64 de NSData
- 22. MD5 codificación Hash y Base64
- 23. NSData a NSString devuelve nulo
- 24. Encontrar diferencias entre cadenas
- 25. NSImage a Base64
- 26. NSData isEqualtoData
- 27. Selección de cadenas y sensibilidad entre mayúsculas y minúsculas
- 28. ¿Detecta codificación base64 en PHP?
- 29. ¿Qué son las cadenas codificadas con Base64 y cómo puedo generarlas en ruby?
- 30. Conversión de audio y video a NSData
Todas las soluciones razonables se parecerán a la publicación de Matt Gallagher a la que se vinculó. –
Aquí encontrarás la biblioteca de Gallagher donde la gente ha usado misteriosamente '[NSData dataFromBase64String]' sin vincular – bobobobo
Por algún motivo incomprensible Apple nunca ha brindado soporte "nativo" para Base64, pero todos los kits de terceros son prácticamente idénticos. Solo elige uno. –