Nella mia app, per sbaglio ho usato "==" quando si confrontano due NSNumber
oggetti in questo modo:iOS - Perché funziona quando confronto due NSNumbers con "=="?
NSNumber *number1;
NSNumber *number2;
Più tardi, dopo int
valori questi oggetti sono stati fissati, l'ho fatto per sbaglio questo:
if (number1 == number2) {
NSLog(@"THEY'RE EQUAL");
}
E, in modo confuso, ha funzionato! Avrei giurato mi è stato insegnato a fare in questo modo:
if (number1.intValue == number2.intValue) {
NSLog(@"THEY'RE EQUAL");
}
Come ha fatto con "==" tra i due NSNumber
oggetti di lavoro, e perché? Ciò significa che va bene confrontarli in questo modo, o è stato solo un caso e di solito non è garantito che funzioni ogni volta? E 'veramente mi :(
in realtà, il "intValue" fallirà in molti casi. Se entrambi gli NSNumbers contengono numeri interi grandi o numeri di virgola mobile diversi ma vicini, ad esempio. – gnasher729