Ora che abbiamo letterali NSNumber con supporto del compilatore in Objective-C, esiste un modo preferito per confrontare un NSNumber con un valore intero noto?NSNumero valore primitivo uguaglianza vs isEqualToNumber con Obj-C Literals
Il vecchio modo è [myNumber integerValue] == 5
Ora possiamo fare [myNumber isEqualToNumber:@5]
o addirittura [myNumber isEqualToNumber:@(someVariable)]
.
Esiste un vantaggio per il metodo isEqualToNumber:
oppure dovremmo restare con valore intero a meno che il valore da confrontare non sia già un NSNumber?
Un vantaggio che posso vedere è se alcune modifiche di variabile da un NSInteger a un CGFloat, non saranno necessarie modifiche al codice per il nuovo modo.
l'autoboxing/unboxing arriverà mai all'obiettivo C? –
@AmoghTalpallikar No, ma la cosa più vicina è qui: '[myNumber isEqualToNumber: @ 5]' – dasblinkenlight
sarà == controllare i lavori per NSNumbers se rappresentano lo stesso numero o bool? myNumber == @ 5 o stato == @YES –