2013-08-29 25 views
9

NSString'i bir int'ye nasıl dönüştürdüğümü anlayamadım. ASCII'yi metne dönüştürmeye çalışıyorum, ancak bunu yapmak için bir dizgiyi bir int'ye dönüştürmem gerekiyor.Dizeyi hedefe dönüştürür c

Bunun çevrimiçi veya yığın taşması olmadığı bir yerde gerçekten garip buluyorum. Eminim ki buna ihtiyacı olan çevrimiçi kişi değilim.

Yardımlarınız için şimdiden teşekkür ederiz.

P.S. Bu burada olur ben ASCII dönüştürmek için kullanıyorum kod ise:

NSString *a = @"123abc"; 
NSInteger b = [a integerValue]; 
+0

Birçok soruyu inceledim, ancak bir cevap bulamadım. Bu yüzden sordum. – DonyorM

cevap

32

tamsayı dize ayrıştırmak için yapmanız gereken sadece kullanabilirsiniz:

[NSString dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES] 

Veya örnekte:

return [text dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES]; 

Bu, ihtiyacınız olan şey buysa, ASCII (yönteminize göre) bir dize temsili elde etmek için yineleyebileceğiniz bir NSData döndürecektir.

Bu yaklaşımı kullanmanın nedeni, NSString'lerin ASCII olmayan karakterleri depolayabilmeleridir, elbette potansiyel olarak ayrıntılarını kaybedersiniz, ancak allowLossyConversion işaretinin etkinleştirilmesi, bunun üstesinden gelmeye çalışacaktır. the Apple documentation uyarınca Örneğin:

, NSASCIIStringEncoding, karaktere NSUnicodeStringEncoding bir karakter dönüştürülmesinde ‘a’ vurgu kaybetme ‘A’ haline gelir.

+0

Bunu bir int ile de yapabilirsiniz. Yardım için teşekkürler. – DonyorM

+0

gr8 ... Kodlamayı –

5

Belki fraksiyonel konu dışı ama ASCII dönüştürmek:

+ (NSString *) decodeText:(NSString *)text { 
    NSArray * asciiCode = [text componentsSeparatedByString:@"|"]; 
    int i = 0; 
    NSMutableString *decoded; 

    while (i < ([asciiCode count]-1)) { 

     NSString *toCode = [asciiCode objectAtIndex:i]; 
     int codeInt = toCode; 
     NSString *decode = [NSString stringWithFormat:@"%c", codeInt]; 
     [decoded appendString:decode]; 

    } 

    return decoded; 
} 
+0

kodlamaktan zevk alalım, böylece dönüştürmek istediğim dizeyi nereye ekleyebilirim? – DonyorM

+0

@DonyorM dataUsingEncoding ... dize üzerinde * aradığınız bir yöntemdir. (Cevabımı güncelleyeceğim.) –

+0

Teşekkürler, bazı fonksiyonlar "NSString" ile başlayacağınız için özür dilerim. – DonyorM

İlgili konular