sale descargar cuando iphone nsstring nsdata

iphone - descargar - ios 12 cuando sale



NSData para mostrar como una cadena (3)

Estoy construyendo una aplicación para iPhone y me he quedado con lo siguiente:

unsigned char hashedChars[32]; CC_SHA256([inputString UTF8String], [inputString lengthOfBytesUsingEncoding:NSASCIIStringEncoding], hashedChars); NSData *hashedData = [NSData dataWithBytes:hashedChars length:32]; NSLog(@"hashedData = %@", hashedData);

El registro se muestra como:

hashedData = <abcdefgh abcdefgh abcdefgh abcdefgh abcdefgh abcdefgh abcdefgh abcdefgh>

  • note hashedData es NSData, no NSString

Pero lo que necesito es convertir hashedData en NSString que se parece a:

NSString *someString = @"abcdefghabcdefghabcdefghabcdefghabcdefghabcdefghabcdefghabcdefgh";

Básicamente, el resultado debe ser como hashedData, excepto que no quiero que aparezcan los corchetes angulares y los espacios intermedios.


Defina un NSCharacterSet que contenga los caracteres ofensivos y luego filtre su cadena usando -stringByTrimmingCharactersInSet :.


He encontrado la solución y creo que estaba siendo estúpido.

Básicamente todo lo que tenía que hacer es:

NSString *someString = [NSString stringWithFormat:@"%@", hashedData]; // obligando a los NSData a convertirse en NSString

Una vez más, gracias a todos los que intentaron ayudar, muy apreciados.


Utilice el método NSString initWithData: encoding:.

NSString *someString = [[NSString alloc] initWithData:hashedData encoding:NSASCIIStringEncoding];

(Editar para responder a tu comentario :)

En ese caso, la respuesta de Joshua ayuda:

NSCharacterSet *charsToRemove = [NSCharacterSet characterSetWithCharactersInString:@"< >"]; NSString *someString = [[hashedData description] stringByTrimmingCharactersInSet:charsToRemove];