Ein NSData in ein NSString umwandeln

  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];
    
     
    lemming, 28.02.2005
    #1
  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]];
    
     
    elninio, 01.03.2005
    #2
  3. lemming

    lemming Thread Starter MacUser Mitglied

    Mitglied seit:
    19.02.2005
    Beiträge:
    11
    Zustimmungen:
    0
    Super, das hat geklappt. Danke!
     
    lemming, 01.03.2005
    #3
  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
     
    hns, 01.03.2005
    #4
  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
     
    hns, 01.03.2005
    #5
  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
     
    lemming, 02.03.2005
    #6
  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
     
    hns, 02.03.2005
    #7
Die Seite wird geladen...