2009-04-01 13 views

Odpowiedz

26

Obie odpowiedzi są prawidłowe. Jeśli chcesz połączyć wiele ciągów i liczb całkowitych, użyj appendFormat NSMutableString.

NSMutableString* aString = [NSMutableString stringWithFormat:@"String with one int %d", myInt]; // does not need to be released. Needs to be retained if you need to keep use it after the current function. 
[aString appendFormat:@"... now has another int: %d", myInt]; 
+0

Używam czegoś takiego do łączenia ciągów, ale daje mi to ostrzeżenie: "Lokalna deklaracja" aString "ukrywa zmienną instancji" .Co może generować ten błąd? – Hari

+1

Czy po aString nie brakuje znaku równości? – VagueExplanation

30
[NSString stringWithFormat:@"THIS IS A STRING WITH AN INT: %d", myInt]; 

Zwykle to robię.

+1

Zobacz również localizedStringWithFormat: i initWithFormat: locale: podczas formatowania numeru używanego na ekranie. –

3
NSString *s = 
    [ 
     [NSString alloc] 
      initWithFormat:@"Concatenate an int %d with a string %@", 
      12, @"My Concatenated String" 
    ]; 

Wiem, że prawdopodobnie szukasz krótszej odpowiedzi, ale tego właśnie bym użył.

+0

Czy to jest to samo co [NSString stringWithFormat:]? – PlagueHammer

+0

Ta metoda wymaga zwolnienia ciągu znaków, gdy skończysz. –

+0

@Debajit, w zasadzie to samo. Będziesz musiał zwolnić napis po jego użyciu. –

3

string1, x, są one zadeklarowane odpowiednio jako obiekt typu string i zmienna całkowita. i jeśli chcesz połączyć zarówno wartości, jak i dołączyć wartości int do obiektu typu string i przypisać wynik do nowego łańcucha, wykonaj następujące czynności.

NSString *[email protected]"Hello"; 

int x=10; 

NSString *string2=[string1 stringByAppendingFormat:@"%d ",x]; 

NSLog(@"string2 is %@",string2); 


//NSLog(@"string2 is %@",string2); is used to check the string2 value at console ; 
-1

Wydaje się prawdziwą odpowiedź nie jest - nie ma łatwy i krótki sposób złączyć NSStrings obiektywnych C - nic podobnego się za pomocą operatora „+” w języku C# i Java.

Powiązane problemy