Ein NSData in ein NSString umwandeln

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

  1. lemming

    lemming Thread Starter MacUser Mitglied

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

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

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

    lemming Thread Starter MacUser Mitglied

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

    hns MacUser Mitglied

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

    hns MacUser Mitglied

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

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

    Beiträge:
    294
    Zustimmungen:
    6
    MacUser seit:
    16.09.2004
    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: 02.03.2005
Die Seite wird geladen...