ios - 声明字典 [字符串 :AnyObject] with overflowing Integers

标签 ios swift integer-overflow

在我的一个单元测试中,我需要声明一个 [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/

相关文章:

iphone - 单击 UIButton 时如何重置所有 tableView 数据和数组?

ios - 替换文本时更正 UITextField 中的文本光标

ios - UITests 在组中运行时失败但在独立运行时成功

使用 CLLocationManager 的 Swift 3 信标监控

c++ - c++ 中的 int(或 long long)溢出如何影响模数?

ios - 多单元格类型 swift 4.2

ios - 表格 View 中的空单元格

swift - 展开button.titleLabel.text

c - 解决超过 2^32 个子句的 SAT

c - INT_MAX 和 INT_MAX 之和