Ios 使用溢出整数声明字典[String:AnyObject]

Ios 使用溢出整数声明字典[String:AnyObject],ios,swift,integer-overflow,Ios,Swift,Integer Overflow,在我的一个单元测试中,我需要声明一个[String:AnyObject],它有时包含大的(>32位)整数值 [ ["timestamp": 1460793600000,"expectedState": "close"], ["timestamp": 1460822400000,"expectedState": "open"] ] 将整数写入文本会触发以下错误: 整数文字在存储到“Int”错误时溢出 我知道我可以用nsnumber [ ["timestamp": NSNumbe

在我的一个单元测试中,我需要声明一个
[String:AnyObject]
,它有时包含大的(>32位)整数值

[
   ["timestamp": 1460793600000,"expectedState": "close"],
   ["timestamp": 1460822400000,"expectedState": "open"]
]
将整数写入文本会触发以下错误:

整数文字在存储到“Int”错误时溢出

我知道我可以用
nsnumber

[
   ["timestamp": NSNumber(longLong:1460793600000),"expectedState": "close"],
   ["timestamp": NSNumber(longLong:1460822400000),"expectedState": "open"]
]
但这与我期望的数据不匹配(它是存储在可转换核心数据属性中的
JSON
数组)


测试的目的是确保在32位设备上正确处理64位值

事实上,我觉得这有点傻

我的
NSManagedObject
数组返回的数字属于
\uu NSCFNumber
类型,因此它们是NSNumber


然而,我仍在思考如何编写一个测试,以确保它能够处理64位值,而不必在32位设备上运行单元测试

事实上,我觉得这有点傻

我的
NSManagedObject
数组返回的数字属于
\uu NSCFNumber
类型,因此它们是NSNumber


然而,我仍在思考如何编写一个测试,以确保它能够处理64位值,而不必在32位设备上运行单元测试

如果您避免在32位和64位机器上使用长度不同的类型(如
Int
/
NSInteger
),那么您是安全的。对于原语,使用固定长度的类型(如
Int64
)。如果避免在32位和64位计算机上使用长度不同的类型(如
Int
/),则是安全的。对于原语,使用固定长度的类型(如
Int64
)。