我有一个Dictionary
对象,其中包含大量(纪元时间)。当我尝试将其转换为Int
时,结果是完全不同的数字。尝试将其明确地转换为Int64
或String
都会产生nil
。
(lldb) po postData["createdDate"]
▿ Optional<AnyObject>
▿ Some : 1 elements
- [0] : 1461681488000
(lldb) po postData["createdDate"] as? [Int]
▿ Optional<Array<Int>>
▿ Some : 1 elements
- [0] : 1392607360
(lldb) po postData["createdDate"] as? [Int64]
nil
(lldb) po postData["createdDate"] as? [String]
nil
我使用的是64位系统,远远低于Int64
的上限。这里发生了什么,我该如何访问这个号码?
PS:我知道日期应该以ISO 8601格式传输,但这是我正在处理的输入。
答案 0 :(得分:2)
数字字典对象桥接到NSNumber
。
将值转换为NSNumber
并获取longLongValue
if let epochTime = postData["createdDate"] as? NSNumber {
let longNumber : Int64 = epochTime.longLongValue
}