2011-06-26 10 views
10

署名されていないcharをNSStringに変換する方法を教えてもらえますか?署名されていないcharをiOSのNSStringに変換する方法

私が使用しているコードはありますが、NSStringを使って何かをしようとすると何らかの理由でUITextViewテキストを設定するとエラーになります。 NSLogは正しく動作します。前もって感謝します。 tagはC文字列(ヌルで終了、である)である場合

- (void)onTagReceived:(unsigned char *)tag 
{ 

NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; 
NSString *myTag = [NSString stringWithFormat:@"%02x%02x%02x%02x%02x\n",tag[0],tag[1],tag[2],tag[3],tag[4]]; 

NSLog(@"currentTag: %@",myTag); 

[displayTxt setText:myTag]; 

[pool release]; 

} 
+1

どのようなエラーが表示されますか? – jtbandes

答えて

19

することは、あなたは[NSString stringWithUTF8String:(char *)tag]を使用することができます。 16進数値が必要な場合は、%02xを使用するコードは問題ありません。

+0

ヌル終了を思い出させるための+1: – JakeP

2

@jtbandes:あなたは正しいです。あなたがこれを行うことができるもう1つの方法:

NSString *str = [NSString stringWithCString:tag length:strlen(tag)]; 
+4

このメソッドは推奨されていないので、使用しないでください。他のオプションについては、[NSStringクラスリファレンス](http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/Reference/NSString.html)を参照してください。 – jtbandes

+2

私の悪い!!私に思い出させるための感謝:) – Manoj

関連する問題