如何在 NSMutableArray* 或 NSMutableDictionary* 中存储“int”值?以整数形式出现的 JSON 数据的长期问题。

Posted

技术标签:

【中文标题】如何在 NSMutableArray* 或 NSMutableDictionary* 中存储“int”值?以整数形式出现的 JSON 数据的长期问题。【英文标题】:How do you store "int" values in an NSMutableArray* or NSMutableDictionary*? Chronic problems with JSON data that come in as integers. 【发布时间】:2011-01-21 22:17:14 【问题描述】:

如何将"int" 值存储在NSMutableArrayNSMutableDictionary 中?以整数形式出现的 JSON 数据的长期问题。

我应该尝试将这些整数存储为NSNumber 对象还是仅存储为包含整数的字符串?

如果我知道值将始终是自然数(数字>=0,包括零表示 null),那么对指针进行“原始”(int)转换有多危险。

我一直使用的整数是来自数据库的外键 ID。

【问题讨论】:

【参考方案1】:

像这样使用 NSNumber:

int yourInt = 5;
[myMutableArray addObject:[NSNumber numberWithInt:yourInt]];

或者使用现代 Objective C 语法,您可以使用以下表达式:

[myMutableArray addObject:@(2 + 3)];

或者对于孤数:

[myMutableArray addObject:@5];

【讨论】:

【参考方案2】:

使用NSNumber 对象(例如使用[NSNumber numberWithInt:value]

【讨论】:

【参考方案3】:

正如其他人所说,您需要使用NSNumber,或者使用带有数字字符串表示形式的NSString。哪个都无所谓,但NSNumber 会更有效率。

不能只输入一个int,让它被解释为一个指针,然后在退出时将其重新投射。原因是对象(int 将被解释为指向的指针)将在添加到数组时发送retain 消息,这肯定会导致崩溃,因为它将是无效指针.

【讨论】:

【参考方案4】:

你也可以使用:

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

【讨论】:

【参考方案5】:

你也可以像这样增加价值

NSMutableArray *values = [NSMutableArray alloc]init];

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

【讨论】:

以上是关于如何在 NSMutableArray* 或 NSMutableDictionary* 中存储“int”值?以整数形式出现的 JSON 数据的长期问题。的主要内容,如果未能解决你的问题,请参考以下文章

Instrument使用

NSmutableArray添加数据添加失败打印NULL - 没有初始化/初始化写错

Cocoa:如何将按钮连接到视图?

谓词不敏感搜索两个字符串数组

用于循环的 dropbox V2 DBFILESmetadata 不递增

如何在 NSMutableArray* 或 NSMutableDictionary* 中存储“int”值?以整数形式出现的 JSON 数据的长期问题。