NSString in NSInteger konvertieren?

75

Ich möchte konvertieren string datazu NSInteger.

Der Deals-Händler
quelle
2
Wenn Sie es googeln, können Sie die Antwort leicht im ersten Treffer selbst erhalten
KingofBliss
22
Sie sollten Antworten auf Ihre Fragen akzeptieren.
BoltClock
3
Ab wann werden aufgegebene Fragen wie diese "versteigert", damit die Community sie mit Reputationspunkten kaufen kann ... hmmm :-)
Norman H
16
@ KingOfBliss Ich habe es gegoogelt und mein erster Treffer war dieser Beitrag :)
Stephan Celis
2
@StephanCelis Vorher war es ein anderer Beitrag. Jetzt rangierte dies basierend auf den meisten Ansichten :)
KingofBliss

Antworten:

144

Wenn die Zeichenfolge eine lesbare Darstellung einer Zahl ist, können Sie Folgendes tun:

NSInteger myInt = [myString intValue];
Aurum Aquila
quelle
56
Ich glaube, die rechte Seite des Ausdrucks sollte [myString integerValue] sein, nein?
Kyle Clegg
[myString intValue]ist eine dunkle Seite ahaha
Alexander Perechnev
4
intValue gibt ein int zurück, integerValue gibt eine NSInteger zurück. int ist immer ein int-Typ, aber NSInteger ändert die Typen für das kompilierte Gerät. Es gibt noch mehr dazu, aber es wird empfohlen, NSInteger zu verwenden, wo immer dies möglich ist.
Michael Ozeryansky
2
Ich bin enttäuscht. Wenn Sie so etwas tun, [@"Test" integerValue]wird es zurückgegeben, 0weil Testes keine Zahl ist. Dies ist ein unsicherer Weg, dies zu tun.
eMdOS
74

[myString intValue] gibt einen cType "int" zurück

[myString integerValue]gibt a zurück NSInteger.

In den meisten Fällen finde ich diese einfachen Funktionen, indem ich mir die Klassenreferenzen von Äpfeln ansehe. Der schnellste Weg dorthin ist das Klicken auf die Schaltfläche [Option] und das Doppelklicken auf die Klassendeklarationen (in diesem Fall NSString).

EtienneSky
quelle
2
einfacher und nützlicher Tipp. :)
Douglas Frari
23

Ich habe festgestellt, dass dies die richtige Antwort ist.

NSInteger myInt = [someString integerValue];
Pixel Größe
quelle
9
NSNumber *tempVal2=[[[NSNumberFormatter alloc] init] numberFromString:@"your text here"];

Gibt NULL zurück, wenn Zeichenfolge oder NSNumber

NSInteger intValue=[tempVal2 integerValue];

Gibt eine Ganzzahl von NSNumber zurück


quelle
1
int myInt = [myString intValue];
NSLog(@"Display Int Value:%i",myInt);
Amit Singh
quelle
1

Dies ist sicherer als integerValue:

-(NSInteger)integerFromString:(NSString *)string
{
    NSNumberFormatter *formatter=[[NSNumberFormatter alloc]init];
    [formatter setNumberStyle:NSNumberFormatterDecimalStyle];
    NSNumber *numberObj = [formatter numberFromString:string];
    return [numberObj integerValue];
}
Enrico Cupellini
quelle
-3
NSString *string = [NSString stringWithFormat:@"%d", theinteger];
Zverusha
quelle
1
Er bat um das Gegenteil davon.
Lev