如何在 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"
值存储在NSMutableArray
或NSMutableDictionary
中?以整数形式出现的 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 数据的长期问题。的主要内容,如果未能解决你的问题,请参考以下文章
NSmutableArray添加数据添加失败打印NULL - 没有初始化/初始化写错
用于循环的 dropbox V2 DBFILESmetadata 不递增
如何在 NSMutableArray* 或 NSMutableDictionary* 中存储“int”值?以整数形式出现的 JSON 数据的长期问题。