我在这段代码的最后一行遇到了一些崩溃:
let currentTime = CFAbsoluteTimeGetCurrent()
let timePassedInSeconds = currentTime - Defaults[.absoluteStartGameTime]!
let time = worldTime.realGameSecondsToGameTime(Int(timePassedInSeconds)) // hours, days
看起来执行甚至没有进入realGameSecondsToGameTime方法,因为crashlytics将此行显示为崩溃线。对我来说唯一有意义的是Double to Int转换失败或timePassedInSeconds为nil。
但是,默认值[.absoluteStartGameTime]是一个CFAbsoluteTime()值,在首次使用该行开始游戏时显式设置:
Defaults[.absoluteStartGameTime] = CFAbsoluteTimeGetCurrent()
异常消息是:
EXC_BREAKPOINT 0x00000000e7ffdefe
SKSceneUtils.calculatePlayerMoney(SKLabelNode) -> () (SKSceneUtils.swift:129)
并且它在代码中的任何位置都不会再次更改。可能导致这种情况的任何想法?