AppWillTerminate调用的函数崩溃

时间:2017-02-04 22:45:43

标签: ios swift twitter-fabric

我收到很多关于applicationWillTerminate调用的函数的报告,不仅仅是那个,但我觉得问题的根源可能与此有关。我从Fabric.io Crashlytics获得这些报告。无论如何,导致崩溃的报告行如下:

return Int(NSDate().timeIntervalSince1970 * 1000)

此代码在大多数情况下也一直有效,但已经上升了崩溃列表。任何人都可以给我任何暗示,为什么这可能会崩溃。

1 个答案:

答案 0 :(得分:3)

我的猜测是您的崩溃来自32位设备,Int(NSDate().timeIntervalSince1970 * 1000)是不可能的,因为NSDate().timeIntervalSince1970 * 1000大于Int.max

这是一个小游乐场代码,以表明这是真的:

let i = Int32.max // max size of Int on 32-bit
i // 2147483647
let j = NSDate().timeIntervalSince1970 * 1000
j // 1486250171084.633

我们可以像这样进行测试:

// let's try to simulate the crash
Int32(j)
// yup, crash: 
// "Double value cannot be converted to Int32 because the result would be greater than Int32.max"