Adicionar barra de barriga à string em Objective-C
-
22-09-2019 - |
Pergunta
Eu tenho um problema idêntico a este problema aqui.
Eu até quero codificar a mesma infromação que ele (é uma data/hora para asp.net) ...
Sempre que tento adicionar uma barra de barra, recebo duas barras de barriga desde que usei .
Todos no tópico acima afirmaram que isso é um problema com o nslog e que o NSString trata \\
como um \
. Eu verifiquei isso ainda mais usando um sniffer de pacote para examinar os pacotes que estou enviando para o servidor da web e posso confirmar que ele está transmitindo uma barra de barragem dupla em vez de uma única barra de barriga.
Alguém sabe como adicionar uma barra de barriga a uma NSString?
Solução
As Strings e Nslog estão funcionando bem para mim:
NSLog(@"\\"); // output is one backslash
NSLog(@"\\\\"); // output is two backslashes
NSLog(@"\\/Date(100034234)\\/"); // output is \/Date(100034234)\/
o que estou perdendo?
Outras dicas
Experimente isso:
yourStr = [yourStr stringByReplacingOccurrencesOfString:@"\\\\" withString:@"\\"];
NSLog(@"%@", yourStr);
Eu tive o mesmo problema, acabou que meu analisador JSON substituído Todas as ocorrências de "" com "", então quando eu escrevi meu código original como este:
NSString *jsonString = [myJSONStuff JSONRepresentation];
NSLog(@"%@", jsonString);
Isso é o que eu tenho:
{Timestamp: "/data (12345678) /"}
No entanto, a própria string continha quatro barras de barriga (mas apenas 2 delas são impressas pelo NSLog).
Isso é o que me ajudou:
NSString *jsonString = [myJSONStuff JSONRepresentation];
jsonString = [jsonString stringByReplacingOccurrencesOfString:@"\\\\" withString:@"\\"];
NSLog(@"%@", jsonString);
O resultado:
{Timestamp: "/date (12345678) /"}