NSString in NSInteger konvertieren?


75

Ich möchte konvertieren string datazu NSInteger.


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];

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).


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

23

Ich habe festgestellt, dass dies die richtige Antwort ist.

NSInteger myInt = [someString integerValue];

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


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

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];
}

-3
NSString *string = [NSString stringWithFormat:@"%d", theinteger];

1
Er bat um das Gegenteil davon.
Lev
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.