iPhone int 解析

Posted

技术标签:

【中文标题】iPhone int 解析【英文标题】:iPhone int parsing 【发布时间】:2011-08-09 06:57:28 【问题描述】:

我正在开发一个 iPhone 应用程序。我想从字符串中解析一系列数字。但是,intValue 的行为真的很奇怪。

我有一个值为 1304287200000 的字符串。

然后我将它的 intValue 放入一个 NSInteger 中,你瞧,我的整数由于某种原因被赋值为 2147483647。

什么给了?

【问题讨论】:

尝试使用大于整数的东西;) 【参考方案1】:

数据类型int 是一个32 位数值,范围约为±20 亿。 1304287200000 超出该范围。

long long 是 64 位类型,可以满足您的需求,您需要跳过 int。 64 位类型更易读且更明确的名称是int64_t

【讨论】:

谢谢,应该已经知道了,哈哈:)。祝您有美好的一天,感谢所有做出贡献的人!【参考方案2】:

返回的是INT32_MAX,因为解析后的值溢出了int 类型。这在NSString documentation 中有解释。试试longLongValueLLONG_MAX 应该够大了。

【讨论】:

【参考方案3】:

int 是 32 位的,所以它可以容纳的最大值是 2,147,483,647。请改用longLongValue

【讨论】:

-intValue 不返回NSInteger,而是返回intNSIntegerint 可以是相同的位大小(实际上在 ios 上,它们是)它们不需要在所有平台上。【参考方案4】:

您的数字超出整数限制

【讨论】:

以上是关于iPhone int 解析的主要内容,如果未能解决你的问题,请参考以下文章

iPhone Google JSON Geocoing 解析

使 iPhone 能够获取和解析 JSON?

在 iphone 中解析推送通知

iPhone 应用程序在解析 XML 时冻结

为 iphone 解析 json 时获取空值?

如何检查iphone中已解析元素的条件