1.22. Allocating and Making Use of Numbers
Problem
You need to use integral values or encapsulate numbers in objects.
Solution
Use NSNumber for an
object-oriented approach to handling numbers. If you require simple
numbers (nonobjects), use NSInteger
to hold signed (positive and negative) values, NSUInteger to hold unsigned (only positive or
zero) values, and CGFloat and
double to hold floating-point
values.
Discussion
Just as we place strings inside instances of NSString, we can place numbers inside
instances of NSNumber. “Why?” you
might ask. The answer is simple: to allow an object to carry the value
of our numbers so that we can save this value to disk easily, load it
from disk, and simply allow a single object to carry signed and unsigned
integral and floating-point values, without the need for typecasting or
defining multiple variables. The possibilities are virtually
endless.
Let’s have a look at constructing instances of NSNumber:
NSNumber*signedNumber=@-123456;NSNumber*unsignedNumber=@123456;NSNumber*floatNumber=@123456.123456f;NSNumber*doubleNumber=@123456.1234567890;
Just as we placed signed and unsigned integers and floating-point
values into an instance of NSNumber
class, we can retrieve those values using some really handy instance
methods of NSNumber class, as shown
here:
NSNumber*signedNumber=@-123456;NSNumber*unsignedNumber=@123456;NSNumber*floatNumber=@123.123456f;NSNumber*doubleNumber=@123.1234567890;NSIntegersignedValue=[signedNumber ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access