objective-c - swift convert text to int




Como faço para converter um valor NSString para NSData? (7)

Como faço para converter um valor NSString para NSData ?


Faz:

NSData *data = [yourString dataUsingEncoding:NSUTF8StringEncoding];

então sinta-se à vontade para continuar com NSJSONSerialization:JSONObjectWithData .

Correção para a resposta sobre o terminador NULL

Após os comentários, documentação oficial e verifications , esta resposta foi atualizada com relação à remoção de um suposto terminador NULL:

  1. Conforme documentado por dataUsingEncoding: ::

    Valor de retorno

    O resultado da invocação de dataUsingEncoding:allowLossyConversion: com NO como o segundo argumento

  2. Conforme documentado por getCString:maxLength:encoding: e cStringUsingEncoding: ::

    note que os dados retornados por dataUsingEncoding:allowLossyConversion: não é uma string C estrita, pois não possui um terminador NULL


No caso do Swift Developer vir aqui,

converter de NSString / String para NSData

var _nsdata = _nsstring.dataUsingEncoding(NSUTF8StringEncoding)

Para o Swift 3, você estará convertendo principalmente de String para Data .

let myString = "test"
let myData = myString.data(using: .utf8)
print(myData) // Optional(Data)

Primeiramente, você deve usar dataUsingEncoding: vez de passar por UTF8String . Você só usa UTF8String quando precisa de uma string C nessa codificação.

Então, para UTF-16 , apenas passe NSUnicodeStringEncoding vez de NSUTF8StringEncoding em sua dataUsingEncoding: message.


NSString *str = @"Banana";
NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:true];

NSString *str = @"hello";
NSData *data = [NSData dataWithBytes:str.UTF8String length:str.length];

NSString* str = @"teststring";
NSData* data = [str dataUsingEncoding:NSUTF8StringEncoding];




nsdata