Ein NSData in ein NSString umwandeln

L

lemming

Neues Mitglied
Thread Starter
Dabei seit
19.02.2005
Beiträge
11
Reaktionspunkte
0
Ich hab' ein NSData

Code:
   NSData	*tempData = [[NSData alloc] initWithBase64EncodedString:test];

Das möchte ich in einen NSString umwandeln.So geht's irgendwie nicht:
Code:
  NSString	*plainString = [[NSString alloc] initWithFormat:@"%@", tempData];
 
Versuchs mal damit

Code:
NSString *plainString = [NSString stringWithCString:[tempData bytes]];
 
Super, das hat geklappt. Danke!
 
lemming schrieb:
Ich hab' ein NSData
Code:
   NSData	*tempData = [[NSData alloc] initWithBase64EncodedString:test];
Hm, hab' ich bei mir in der Doku nicht gefunden. Ist das neu im "Esso im Tank"?

Evtl. ist
Code:
initWithData: encoding:NSxxxStringEncoding
(xxx z.B. UTF8) korrekter, je nach dem Inhalt des base64.

-- hns
 
Zuletzt bearbeitet:
elninio schrieb:
Code:
NSString *plainString = [NSString stringWithCString:[tempData bytes]];

!!! Falle !!!

[tempData bytes] liefert nicht unbedingt einen 0-terminierten C-String. Ausser die 0 ist in dem base64 enthalten.

-- hns
 
Wie kann ich der Falle entgehen?
Bis jetzt hat es beim Testen noch keinen Fehler zurück geliefert. Eine Idee?

Ich hab' die Base64-Extension von Kyle Hammond in mein Projekt eingebunden.

ciao, lemming
 
lemming schrieb:
Wie kann ich der Falle entgehen?
Bis jetzt hat es beim Testen noch keinen Fehler zurück geliefert. Eine Idee?
Mit der Methode -initWithData:data encoding:NSUTF8StringEncoding diese berücksichtigt die Länge des NSData-Objekts. Und funktioniert sogar wenn 0-bytes enthalten sind.

-- hns
 
Zuletzt bearbeitet:
Zurück
Oben Unten