【发布时间】:2019-01-18 18:13:14
【问题描述】:
Xcode 给了我以下错误,但我不知道这是从哪里来的。我打印了elpasedTime 值,它包含值!
但它仍然说它在展开时发现 nil 并且我不知道为什么会发生这种情况,因为它没有告诉我在哪里。
这可能哪里出错了??
函数stringFromTimeInterval如下
extension TimeInterval {
func stringFromTimeInterval() -> String {
let time = NSInteger(self)
// let ms = Int((self.truncatingRemainder(dividingBy: 1)) * 1000)
let seconds = time % 60
let minutes = (time / 60) % 60
let hours = (time / 3600)
print("5 here?")
return String(format: "%0.2d:%0.2d:%0.2d",hours,minutes,seconds)
}
}
【问题讨论】:
-
您的问题与您的
stringFromTimeInterval函数无关。崩溃的是ViewController().timeLeft访问。 -
您为什么要尝试创建和使用这样的新视图控制器?毫无意义。你创建它,尝试(糟糕地)初始化它,然后你把它扔掉而不用。你到底想做什么?
-
在这两个地方你都有
ViewController().timeLeft.text删除timeLeft之前的所有内容以使其成为timeLeft.text。根据您调用它的时间,timeLeft可能仍然为零,但不会持续很长时间。 -
@Leonard,永远不要试图惹恼业主以外的渠道。 Xcode 应该将它们全部标记为
private,这样人们就不会犯这种错误。 -
作为记录,正如@rmaddy 指出的那样,
ViewController()创建了该类的 new 实例,因此即使timeLeft不是零,它不会做你想做的事。
标签: swift null optional unwrap