NSNumber primitive value is vs isEqualToNumber with Obj-C Literals

Now that we have NSNumber literals with compiler support in Objective-C, is there a preferred way to compare NSNumber with a known integer value?

Old way [myNumber integerValue] == 5

Now we can do [myNumber isEqualToNumber:@5]or even [myNumber isEqualToNumber:@(someVariable)].

Is there an advantage in the method isEqualToNumber:, or should we stick with integerValue if the value to compare with is already NSNumber?

One of the advantages that I see is that if some variables change from NSInteger to CGFloat, no new code changes are required for the new method.

+5
source share
3 answers

The new way is the really new syntax around the old

[myNumber isEqualToNumber:[NSNumber numberWithInt:5]]

numberWithInt:; , , , /.

, . , , -, .

[myNumber integerValue] == 5
+10

" " - .

" " - .

, . ( - ), .

, .

, , .

float . , .

+3

: [myNumber integerValue] == 5 .

( , , ) : iOS 5, "" NSNumbers ( Google). , NSNumber 24 ( 32- ARM- iPhone/iPad), . , , , 24 , myNumber == @5.

. [myNumber integerValue] == 5. Tagged , , .

+2

All Articles