2011-01-22 15 views
5

プレーンテキストに戻ったNSDataを回す私は、単純なNSStringのを持っていると私はNSDataのに変換しています:NSStringの

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

は今、私はNSDataオブジェクトからプレーンテキストを取得したいです。
私はそれをやっている場合:

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

- 私はちょうど進表現(すなわち< 9c3f473e 02000000 0b0000>)とない私が欲しい無地の文字列を取得しています!私はinitWithDataを使用しても試した

-

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

しかし、それは常にかかわらず、私はそれを与えるどのエンコーディングgibrishを示しています。

ここでお手伝いできますか? :)

+0

あなたがNSUTF8StringEncoding代わりのNSASCIIStringEncodingを試してみましたか? –

答えて

9

あなたがにあなたの最初のコードスニペットを簡素化する必要があります。

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

してから第2の復号のスニペットは動作します:

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

NSString!をリリースする必要があることに注意してください。オートリリースされていません。 –

+0

素晴らしい!それは動作します - ありがとう! – Guys

1

以下の変更を行うとうまくいきます。

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

データのNDataを実行しました。