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

发布于 2024-10-13 12:10:14 字数 271 浏览 8 评论 0原文

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

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

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

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

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.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

忆梦 2024-10-20 12:10:14

像这样使用 NSNumber:

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

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

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

或者对于单独的数字:

[myMutableArray addObject:@5];

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];
残月升风 2024-10-20 12:10:14

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

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

感情旳空白 2024-10-20 12:10:14

正如其他人所说,您需要使用 NSNumber ,或者使用 NSString 和数字的字符串表示形式。哪个并不重要,但 NSNumber 会更有效。

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

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.

天暗了我发光 2024-10-20 12:10:14

您还可以使用:

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

You can also use:

[myDict setObject:[NSNumber numberWithInt:anInteger] forKey:@"MyInteger"];
壹場煙雨 2024-10-20 12:10:14

您还可以像这样添加值

NSMutableArray *values = [NSMutableArray alloc]init];

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

You can also add value like this

NSMutableArray *values = [NSMutableArray alloc]init];

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文