2014-10-13 11 views
18

Sto avendo problemi cercando di eseguire questo test a causa di un errore sulla prima linea di questo codice che indica:Cambia NSString in valore int?

puntatore incompatibile a intero conversione inizializzazione 'int' con un'espressione di tipo '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 

prega di aiuto. Sono su iOS e sto eseguendo xCode 5.1.1 se questo aiuta.

+0

ti suggerisco di usare 'NSInteger' e non' int '. 'int' 32 bit e' NSInteger' un typedef per la dimensione del bit nativo del sistema, quindi 64 su CPU a 63 bit e 32 su sistemi a 32 bit. – rckoenes

+0

riproducibile banalmente: 'int x = (NSString *) nil;' Quindi * perché * il compilatore lo avverte? – user2864740

risposta

69

Stai rappresentando il valore NSString errato.

Utilizzare questo esempio di codice per risolvere il problema:

int x = [TramNumber.text intValue]; 

Per rappresentare il valore int dal campo di testo.

+0

Grazie, lo hai risolto – needshelp

+0

Sei sempre il benvenuto. –

7
int x = [TramNumber.text intValue]; 

Hai solo bisogno di convertire NSString in int.

2

Non è possibile assegnare il testo come numero intero. Si dovrebbe lanciare NSString a int come questo:

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

    NSLog(@"%d",statusCode); 

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

Basta provare questo codice di esempio .. Questo sarà sicuramente vi aiuta ... @