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
)。