2017-05-22 1 views
0

Je reçois le dictionnaire du service Web et ce dictionnaire contient une paire clé-valeur codée. J'ai utilisé du code pour décoder cette valeur-clé.Comment encoder et décoder la chaîne correctement?

Code no. 1:

[NSString stringWithUTF8String:[[dict valueForKey:@"desc"] cStringUsingEncoding:[NSString defaultCStringEncoding]]]; 

Mais quand je lance ce code, alors il se est écrasé et a l'erreur [NSString stringWithUTF8String:]: NULL cString'

Lorsque le déboguer, le dictionnaire contient les clés & valeurs aussi « desc » clé ayant une valeur.

D'un autre côté, j'ai un code qui a bien fonctionné.

Code no. 2:

[NSString stringWithFormat:@"%@",[dict valueForKey:@"desc"]]; 

Mais presque partout dans mon application, j'ai utilisé no.1 code et son fonctionnait très bien.

et maintenant je ai totalement confondre cette erreur [NSString stringWithUTF8String:]: NULL cString' est venu alors que je vérifie dictionnaire contient des clés & valeurs.

+2

stringWithFormat est utilisé pour TypeCasting et formater la chaîne pas pour le décodage et le codage. – KKRocks

+0

S'il vous plaît montrer la définition de votre chaîne/dict et laissez-nous savoir de/à ce que vous voulez décoder/encoder. – shallowThought

Répondre

0

Pourquoi créez-vous un C-String à partir de NSString puis (retour) NSString de C-String?

Pourquoi ne pas simplement

NSString *desc = dict[@"desc"]; 

Et - comme toujours - ne le font pas usagevalueForKey à moins que vous pouvez expliquer pourquoi vous avez besoin explicitement KVC.