2010-09-29 27 views
12

Chcę konwertować int do ciąg w celu c, jak to zrobić.jak przekonwertować NSinteger na ciąg

mój kod.

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

} 

Dzięki z góry.

+0

mam inną zmienną string o nazwie myWord chcę przypisać wartość do niego i ..... .. –

Odpowiedz

14

Spróbuj tego:

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 jest po prostu typedef do typów danych int lub long na systemach 32/64-bitowych.

+2

Odpowiedź n13 poniżej to nowoczesny wariant i zdecydowanie bardziej elegancki –

2

Możesz zadeklarować myWord z pętli jako NSMutableString.

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

referencyjny zobaczyć literały Objective-C - literały usunąć wiele brzydkiego kodu boilerplate zaśmiecania swoje codebase: http://clang.llvm.org/docs/ObjectiveCLiterals.html

+1

Fajnie, dzięki za wprowadzenie mnie w łatwy sposób dzięki nowej składni –

+0

Jest to faktycznie wolniejsze i mniej wydajne pod względem pamięci, ponieważ tworzysz instancję 'NSNumber' za każdym razem, gdy chcesz uzyskać wartość ciągu. Wykonał test porównawczy z 1000000 iteracjami i uzyskał '0,924962' sekundę z metodą' NSNumber' i uzyskał '0,668426' sekundę przy użyciu metody' stringWithFormat'. Jest to tylko rozważenie, jeśli używałbyś go w ogromnej pętli. – Majster

+0

^Interesujący benchmark, ale spodziewałbym się, że będzie gorzej. 30% różnica to niewiele. Oczywiście nie rób tego, jeśli przeliczasz tysiące lub dziesiątki tysięcy liczb na String. Ogromna pętla konwersji numeru na ciąg brzmi jak zły kod, niezależnie od tego, jak wykonujesz konwersję. – n13