Domanda

Come confrontiamo due numeri di Nsinteger?Ho due nsingers e confrontando loro il modo regolare non funzionava.

if (NSIntegerNumber1 >= NSIntegerNumber2) {
    //do something
}
.

Everifugh, il primo valore era 13 e il secondo valore era 17, il loop se è in esecuzione

Qualche idea?

È stato utile?

Soluzione

NSInteger int1;
NSInteger int2;

int1 = 13;
int2 = 17;

if (int1 > int2)
{
    NSLog(@"works");
}
.

Altri suggerimenti

Bene, dal momento che hai un numero intero e il numero nel nome, potresti aver dichiarato i due valori come NSNumber invece di NSinteger.Se è così, è necessario effettuare le seguenti operazioni:

 if ([NSIntegerNumber1 intValue] >= [NSIntegerNumber2 intValue]) {
      // do something
 }
.

Altrimenti dovrebbe funzionare come è!

NSInteger è solo un typedef per un tipo integrale incorporato (ad esempio int o long).

È sicuro confrontare usando a == b.

altri operatori comuni si comportano prevedibilmente: !=, <=, <, >= et al.

Infine, il tipo di sottostante di NSInteger varia per piattaforma / architettura.Non è sicuro presumere che sarà sempre 32 o 64 bit.

Quando si confrontano i numeri interi, usando questo, funzionerebbe bene:

int a = 5;
int b = 7;

if (a < b) {

NSLog(@"%d is smaller than %d" a, b);   

}
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top