Come confrontare due Nsinteger?
-
13-11-2019 - |
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?
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);
}
.