Estoy tratando de codificar una cadena URL para formar una solicitud GET desde Object-C.URLEcodificando una cadena con Objective-C
NSString *params = @"'Decoded data!'/foo.bar:baz";
NSRunAlertPanel(@"Error", [params urlEncoded], @"OK", nil, nil);
Ésta es la categoría que se extiende NSString
-(NSString *) urlEncoded
{
NSString *encoded = (NSString *)CFURLCreateStringByAddingPercentEscapes(
NULL,
(CFStringRef)self,
NULL,
(CFStringRef)@"!*'\"();:@&=+$,/?%#[]% ",
kCFStringEncodingUTF8);
return encoded;
}
Así que la primera vez que lo ejecuto me da vuelta
1606410046ecoded 1606410784ata2270.000000foo.bar0X1.001716P-1042baz
desde el cuadro de diálogo.
Inmediatamente después de ejecutar de nuevo me sale este
1606410046ecoded 1606410944ata227369374562920703448982951250259562309742470533728899744288431318481119278377104028261651081181287077973859930826299575521579020410425419424562236383226511593137467590082636817579938932512039895040.000000foo.bar0X1.66E6156303225P+771baz
Entonces, si me haces otra vez se remonta a la primera. Es realmente extraño.
Si params está establecido en @ "&" o @ "" Acabo de obtener un "2" (sin las comillas) en el cuadro de diálogo.
¿Hay alguna forma en que pueda mostrar los signos% en el cuadro de diálogo de alerta?
Gracias
¿por qué llama él dos veces y por qué no estás registrando tu salida en lugar de meterla en una alerta? –