2011-06-26 16 views
10

Kimse bana imzalanmamış bir karakteri NSString'e nasıl dönüştürür?İmzasız char'i iOS'ta NSString'e dönüştürme

Kullandığım kod aşağıdadır; ancak bir nedenden dolayı, bir UITextView metni ayarlamak gibi NSString ile bir şey yapmaya çalışırsam, bana bir hata verir. NSLog doğru olsa da çalışır. Şimdiden teşekkürler.

- (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

Ne tür bir hata alıyorsunuz? – jtbandes

cevap

19

tag C dize (null-sonlandırılmış olması) ise, o zaman [NSString stringWithUTF8String:(char *)tag] kullanabilirsiniz. Altıgen değerlerini istiyorsanız, %02x kodunu kullanın.

+0

+1 null sonlandırmasını hatırlatırız :) – JakeP

2

@jtbandes: siz haklısınız. Bunu yapmanın diğer yolu:

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

Bu yöntem kullanımdan kaldırılmıştır ve kullanılmamalıdır. Diğer seçenekler için [NSString sınıf referansı] 'na (http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/Reference/NSString.html) bakın. – jtbandes

+2

Benim hatam! Bana hatırlattığın için teşekkürler :) – Manoj

İlgili konular