2010-09-29 16 views
12

Bunu yapmak için nesnel c dize convet int istiyorum.Nasıl NSinteger için String dönüştürmek

kodum.

for (i=0; i<=200; i=i+10) { 
    // here i want to convet the value of i into string how to do this 

} 

Teşekkürler.

+0

i ben buna değer atamak istediğiniz myword adında başka dize değişkeni var ..... .. –

cevap

14

bu deneyin:

NSMutableString *myWord = [[NSMutableString alloc] init]; 
for (int i=0; i<=200; i=i+10) { 
    [myWord appendString:[NSString stringWithFormat:@"%d", i]]; 
    //... 
} 
//do something with myWord... 
[myWord release]; 

NSInteger

32/64-bit sistemlerde sadece typedef int veya long veri türleri etmektir.

+2

n13'ün cevabı, modern varyant ve çok daha zarif –

2

myWord'u döngüden NSMutableString olarak bildirmek isteyebilirsiniz.

11
NSInteger n = 13; 
NSString string = @(n).stringValue; 

Referans Objective-C değişmezleri bkz - değişmezleri senin kod tabanına kadar yığılan çirkin Demirbaş kod birçok kaldırın: http://clang.llvm.org/docs/ObjectiveCLiterals.html

+1

Cool, yeni sözdizimi –

+0

ile beni kolay yoldan tanıttığınız için teşekkürler Bu, her seferinde 'NSNumber' örneğini oluşturduğunuzdan, aslında daha yavaş ve daha az bellek etkin dize değeri almak istiyorum. 1000000 yineleme ile bir kıyaslama yaptım ve 'NSNumber' yaklaşımı ile 0,924962 saniyeyi aldım ve' stringWithFormat' yöntemini kullanarak '0.668426' saniye değerini aldım. Bu büyük bir döngüde kullanacak olursanız sadece bir düşüncedir. – Majster

+0

^İlginç bir kıyaslama, ancak daha kötü performans göstermesini beklerdim. % 30'luk bir fark o kadar da değil. Açıkçası, binlerce veya on binlerce sayıyı String'e dönüştürüyorsanız bunu yapmayın. Dize dönüştürme işleminin büyük döngüsü, dönüştürme işlemini nasıl yaparsanız yapın, bana kötü kod gibi geliyor. – n13

İlgili konular