How do you store "int" values in an NSMutableArray* or NSMutableDictionary*? Chronic problems with JSON data that come in as integers.
Solution 1
Use NSNumber like this:
int yourInt = 5;
[myMutableArray addObject:[NSNumber numberWithInt:yourInt]];
Or using modern Objective C syntax, you can use the following for expressions:
[myMutableArray addObject:@(2 + 3)];
Or for lone numbers:
[myMutableArray addObject:@5];
Solution 2
Use NSNumber
objects (e.g. using [NSNumber numberWithInt:value]
)
Solution 3
You can also use:
[myDict setObject:[NSNumber numberWithInt:anInteger] forKey:@"MyInteger"];
Solution 4
You need to use NSNumber
, as others have said, or use an NSString
with the string representaton of the number. It really doesn't matter which, but the NSNumber
will be more efficient.
You can't just throw in an int
, let it be interpreted as a pointer, and then cast it back on the way out. The reason is that the object (that the int
will be interpreted as a pointer to) will be sent the retain
message when it is added to the array, and this will definately cause a crash since it will be an invalid pointer.
P_O
I'm the CEO and cofounder of drchrono If you are a great hacker and are interested in healthcare we'd love for you to build on drchrono's API: https://www.drchrono.com/api/ If you are interesting in joining the most innovative startup in healthcare please take our Hacker test here: https://drchrono.com/jobs/ We reach out to everyone who gets a good score on our online hacker test.
Updated on June 04, 2022Comments
-
P_O almost 2 years
How do you store
"int"
values in anNSMutableArray
orNSMutableDictionary
? Chronic problems with JSON data that come in as integers.Should I try to store these integers as
NSNumber
objects or just as strings that contain the integer?How dangerous is it to do a "raw" (int) conversion on the pointers if I know the values will always be Natural Numbers (numbers>=0 including zero for null.)
The integers I'm always working with are Foreign Key Id's from a database.