How do you store “int” values in an NSMutableArray* or NSMutableDictionary*? Chronic problems with JSON data that come in as integers.

纵饮孤独 提交于 2019-11-27 21:50:49

问题


How do you store "int" values in an NSMutableArray or NSMutableDictionary? 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.


回答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];



回答2:


Use NSNumber objects (e.g. using [NSNumber numberWithInt:value])




回答3:


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.




回答4:


You can also use:

[myDict setObject:[NSNumber numberWithInt:anInteger] forKey:@"MyInteger"];



回答5:


You can also add value like this

NSMutableArray *values = [NSMutableArray alloc]init];

[values addObject:[NSNumber numberWithInt:23]];



来源:https://stackoverflow.com/questions/4764391/how-do-you-store-int-values-in-an-nsmutablearray-or-nsmutabledictionary-chr

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!