2011-01-22 43 views
5

düz metne geri NSData Torna Basit NSString var ve NSData dönüştürerek ediyorum:NSString

NSData *data = [[NSData dataWithBytes:[[NSString stringWithFormat:@",%@",self.targetId] dataUsingEncoding:NSASCIIStringEncoding] 
           length:[[NSString stringWithFormat:@",%@",self.targetId] lengthOfBytesUsingEncoding:NSASCIIStringEncoding]] retain]; 

Şimdi NSData nesneden düz metin almak istiyorum.
Bunu yapıyorum edin:

NSString* dataStr = [NSString stringWithFormat:@"%@",data]; 

- Sadece bir altıgen ifadeyi (yani < 9c3f473e 02000000 0b0000>) değil istediğim düz dize alıyorum! Ben initWithData kullanarak da denedim

-

NSString* dataStr = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding]; 

Ama her zaman olursa olsun verin hangi kodlama gibrish gösterir.

Burada yardımcı olabilir misiniz? :)

+0

yerine NSASCIIStringEncoding ait NSUTF8StringEncoding denediniz mi? –

cevap

9
Sen için ilk kod parçacığını basitleştirmek için gereken

: ardından ikinci kod çözme pasajı çalışacak

NSData *data = [[NSString stringWithFormat:@",%@",self.targetId] dataUsingEncoding:NSASCIIStringEncoding] 

Ve:

NSString* dataStr = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding]; 
+0

NSString'i serbest bırakmanız gerektiğini unutmayın! Otorite değil. –

+0

Harika! Çalışır - Çok teşekkürler! – Guys

1

Aşağıdaki değişiklikleri yapın, işe yarayacaktır.

NSData *data = [[NSString stringWithFormat:@",%@",self.targetId] dataUsingEncoding:NSASCIIStringEncoding] ; 

Verilerin NData'sını yaptınız.