代码之家  ›  专栏  ›  技术社区  ›  Matthieu Riegler

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

  •  1
  • Matthieu Riegler  · 技术社区  · 9 年前

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

    [
       ["timestamp": 1460793600000,"expectedState": "close"],
       ["timestamp": 1460822400000,"expectedState": "open"]
    ]
    

    将整数写为文字会触发以下错误:

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

    我知道我可以用 NSNumbers

    [
       ["timestamp": NSNumber(longLong:1460793600000),"expectedState": "close"],
       ["timestamp": NSNumber(longLong:1460822400000),"expectedState": "open"]
    ]
    

    但这与我预期的数据不符(这是一个 JSON 存储在可转换核心数据属性中的阵列)。

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

    1 回复  |  直到 9 年前
        1
  •  0
  •   Matthieu Riegler    9 年前

    事实上,我觉得有点傻。

    我返回的数字 NSManagedObject 的数组的类型为 __NSCFNumber 所以它们是NSNumber。

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