声明具有溢出整数的字典 [String:AnyObject]
Declare dictionary [String:AnyObject] with overflowing Integers
在我的一个单元测试中,我需要声明一个 [String:AnyObject]
,它有时包含大的(>32 位)整数值。
[
["timestamp": 1460793600000,"expectedState": "close"],
["timestamp": 1460822400000,"expectedState": "open"]
]
将整数写为文字会触发以下错误:
Integer literal overflows when stored into 'Int' error
我知道我可以用 NSNumbers
来写
[
["timestamp": NSNumber(longLong:1460793600000),"expectedState": "close"],
["timestamp": NSNumber(longLong:1460822400000),"expectedState": "open"]
]
但这与我期望的数据不符(这是一个存储在可转换核心数据 属性 中的 JSON
数组)。
我测试的目的是确保我在 32 位设备上正确处理 64 位值。
其实我觉得有点傻。
我的 NSManagedObject
数组返回的数字属于 __NSCFNumber
类型,因此它们是 NSNumber。
然而,我仍在研究如何编写测试以确保它可以处理 64 位值,而不必 运行 在 32 位设备上进行单元测试。
在我的一个单元测试中,我需要声明一个 [String:AnyObject]
,它有时包含大的(>32 位)整数值。
[
["timestamp": 1460793600000,"expectedState": "close"],
["timestamp": 1460822400000,"expectedState": "open"]
]
将整数写为文字会触发以下错误:
Integer literal overflows when stored into 'Int' error
我知道我可以用 NSNumbers
[
["timestamp": NSNumber(longLong:1460793600000),"expectedState": "close"],
["timestamp": NSNumber(longLong:1460822400000),"expectedState": "open"]
]
但这与我期望的数据不符(这是一个存储在可转换核心数据 属性 中的 JSON
数组)。
我测试的目的是确保我在 32 位设备上正确处理 64 位值。
其实我觉得有点傻。
我的 NSManagedObject
数组返回的数字属于 __NSCFNumber
类型,因此它们是 NSNumber。
然而,我仍在研究如何编写测试以确保它可以处理 64 位值,而不必 运行 在 32 位设备上进行单元测试。