2010-02-01 5 views
2
NSMutableData *requestData = (NSMutableData*)[request responseData]; 

retoursRetirez Octet de NSMutableData

"[{JSON_STRING}]"

donc je veux enlever le "["/"]" sans conversion en NSString puis retour à NSData . La façon la plus simple de le faire est de supprimer le premier et le dernier octet.

[requestData setLength:[requestData length]-1]; supprime le dernier octet.

Comment supprimer le premier octet? J'ai essayé la solution ci-dessous, mais ne fonctionne pas ..

NSRange range = {0, 1}; 
[requestData resetBytesInRange:range]; 

Répondre

9

Vous pouvez utiliser

NSRange range = NSMakeRange(1, [requestData length] - 2); 
NSData *refinedData = [requestData subdataWithRange:range]; 

Cela devrait prendre soin à la fois le premier et le dernier caractère.

10

Voilà comment vous dépouillez le premier octet hors un NSMutableData:

NSRange range = NSMakeRange(0, 1); 
[requestData replaceBytesInRange:range withBytes:NULL length:0]; 
+0

Cela vaut mieux que '[données subdataWithRange:]' parce que dans ce cas, aucune copie de données se produit. – ivanzoid

+2

... et dans Swift ce serait 'data.replaceBytesInRange (range, withBytes: nil, length: 0)' – sketchyTech

+1

ok, mais qu'est-ce que cela change, la taille allouée reste la même –