2011-01-25 17 views
65

Chcę przekonwertować stringdata na NSInteger.Konwertuj NSString na NSInteger?

+2

Jeśli google to można łatwo uzyskać odpowiedź w pierwszym przeboju samego – KingofBliss

+19

Należy przyjąć odpowiedzi na swoje pytania. – BoltClock

+3

W którym momencie takie opuszczone pytania zostają "sprzedane na aukcji", aby społeczność kupiła z punktami reputacji ... hmmm :-) –

Odpowiedz

131

Jeśli napis jest czytelny dla człowieka reprezentacją liczby, można to zrobić:

NSInteger myInt = [myString intValue];
+53

Wierzę, że prawą stroną tego wyrażenia powinna być [myString integerValue], nie? –

+0

'[myString intValue]' jest ciemną stroną ahaha –

+4

intValue zwraca wartość int, integerValue zwraca NSInteger. int jest zawsze typu int, ale NSInteger zmienia typy dla skompilowanego urządzenia. Jest na tym więcej, ale zaleca się używanie NSIntegera tam, gdzie to tylko możliwe. –

71

[myString intValue] zwraca ctype "Int"

[myString integerValue] zwraca NSInteger.

W większości przypadków znajduję te proste funkcje, patrząc na odwołania do klas jabłek, najszybszym sposobem na uzyskanie tego jest kliknięcie przycisku [opcja] i dwukrotne kliknięcie deklaracji klasy (w tym przypadku NSString).

+2

końcówka prosta i używana. :) –

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

Uważam, że jest to właściwa odpowiedź.

NSInteger myInt = [someString integerValue]; 
-3
NSString *string = [NSString stringWithFormat:@"%d", theinteger]; 
+0

Poprosił o odwrotność tego. – Lev

6
NSNumber *tempVal2=[[[NSNumberFormatter alloc] init] numberFromString:@"your text here"]; 

powraca NULL Jeśli struny lub zwraca NSNumber

NSInteger intValue=[tempVal2 integerValue]; 

powraca całkowitą NSNumber

0

jest to bezpieczniejsze niż integerValue:

-(NSInteger)integerFromString:(NSString *)string 
{ 
    NSNumberFormatter *formatter=[[NSNumberFormatter alloc]init]; 
    [formatter setNumberStyle:NSNumberFormatterDecimalStyle]; 
    NSNumber *numberObj = [formatter numberFromString:string]; 
    return [numberObj integerValue]; 
}