1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Ein NSData in ein NSString umwandeln

Dieses Thema im Forum "Mac OS Entwickler, Programmierer" wurde erstellt von lemming, 28.02.2005.

  1. lemming

    lemming Thread Starter MacUser Mitglied

    Mitglied seit:
    19.02.2005
    Beiträge:
    11
    Zustimmungen:
    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];
    
     
  2. elninio

    elninio MacUser Mitglied

    Mitglied seit:
    25.02.2005
    Beiträge:
    53
    Zustimmungen:
    2
    Versuchs mal damit

    Code:
    NSString *plainString = [NSString stringWithCString:[tempData bytes]];
    
     
  3. lemming

    lemming Thread Starter MacUser Mitglied

    Mitglied seit:
    19.02.2005
    Beiträge:
    11
    Zustimmungen:
    0
    Super, das hat geklappt. Danke!
     
  4. hns

    hns MacUser Mitglied

    Mitglied seit:
    16.09.2004
    Beiträge:
    294
    Zustimmungen:
    6
    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
     
  5. hns

    hns MacUser Mitglied

    Mitglied seit:
    16.09.2004
    Beiträge:
    294
    Zustimmungen:
    6
    !!! Falle !!!

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

    -- hns
     
  6. lemming

    lemming Thread Starter MacUser Mitglied

    Mitglied seit:
    19.02.2005
    Beiträge:
    11
    Zustimmungen:
    0
    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
     
  7. hns

    hns MacUser Mitglied

    Mitglied seit:
    16.09.2004
    Beiträge:
    294
    Zustimmungen:
    6
    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