2014-10-13 14 views
18

Ich habe Probleme versucht, diesen Test in der ersten Zeile des Codes aufgrund eines Fehlers auszuführen, das heißt:Ändern Sie NSString in int-Wert?

Unverträgliche pointer Umwandlung in Integer ‚int‘ mit einem Expression von Typ Initialisieren ‚NSString *‘

- (IBAction)Button:(id)sender 
{ 
    int x = TramNumber.text; 
    if (x < 9) 
    { 
    Tramresult.text = [NSString stringWithFormat:@"lol"]; 
    } 
    else 
    { 
    NSLog (@"x is less than 9!"); 
    } 
} 
@end 

Bitte helfen. Ich bin auf iOS und laufe xCode 5.1.1, wenn das hilft.

+0

Ich schlage vor, Sie 'NSInteger' und nicht' int '. 'int' 32 bit und' NSInteger' ein typedef für die systemeigene Bitgröße, also 64 auf 63 Bit CPU und 32 auf 32 Bit Systemen. – rckoenes

+0

Trivial reproduzierbar: 'int x = (NSString *) nil;' Also * warum * warnt der Compiler davor? – user2864740

Antwort

69

Sie repräsentieren NSString Wert falsch.

Verwenden Sie dieses Codebeispiel Ihr Problem zu lösen:

int x = [TramNumber.text intValue]; 

Um int Wert von Ihrem Textfeld darstellen.

+0

Danke, Sie haben es gelöst – needshelp

+0

Sie sind immer willkommen. –

7
int x = [TramNumber.text intValue]; 

Sie müssen nur NSString in int konvertieren.

2

Sie können Text nicht als Ganzzahl zuweisen. Sie sollten NSString werfen wie dies in int:

int x = [TramNumber.text intValue]; 
1
NSString *code = dic[@"code"]; 
    int statusCode = [code intValue]; 

    NSLog(@"%d",statusCode); 

    if(statusCode==1)//........cont... 

einfach diesen Beispielcode versuchen .. Dies wird definitiv hilft ... @