在我的一个单元测试中,我需要声明一个 [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"]
]
但这与我期望的数据不匹配(它是一个存储在 Transformatable Core Data 属性中的 JSON
数组)。
我测试的目的是确保我在 32 位设备上正确处理 64 位值。
最佳答案
其实我觉得这个有点傻。
我的 NSManagedObject
数组返回的数字是 __NSCFNumber
类型,因此它们是 NSNumber。
但是,我仍在弄清楚如何编写测试以确保它可以处理 64 位值,而不必在 32 位设备上运行单元测试。
关于ios - 声明字典 [字符串 :AnyObject] with overflowing Integers,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36694305/