为什么我的快速代码在加载屏幕上暂停了?

威廉·德格鲁特
if timerRunning == false{
    timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: Selector("counting"), userInfo: nil, repeats: true)
    timerRunning = true
}
while timerLabel.text != "0"{
gameViewStillRunning = false
}
if gameViewStillRunning == false{
    self.performSegueWithIdentifier("segue", sender: nil)
}

这段代码的目的是显示一个向下计数的标签,然后当它达到0时,场景应切换到另一个ViewController。这段代码没有任何错误,但是当我运行它时,该程序除了加载屏幕之外没有任何其他信息。有什么建议?

约拿

看来您正在while主线程(也是负责绘制UI的线程)上运行循环。只要该线程停留在while循环中,就无法继续运行循环,也没有机会更新显示或响应用户交互。

另外,如果您查看NSTimer文档,您可能会注意到它scheduledTimerWithTimeInterval指出Creates and returns a new NSTimer object and schedules it on the current run loop in the default mode.计时器正在counting主线程的运行循环中调度对函数的调用,但是由于该线程一直在您的内部旋转while,它将永远没有机会执行,因此它没有机会更新timerLabel.text

while更好的解决方案是让run循环继续进行,并在计时器调用您的counting函数时做出反应,而不是尝试在轮询某些条件时循环来阻止执行无论事件何时发生或如何发生,让您的应用程序对事件做出反应(例如剩余时间更改),而不是尝试控制确切的执行顺序。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么Systemd.timer在OnCalendar上暂停了一段时间

来自分类Dev

为什么在AWS EB的EC2实例上找不到我的快速代码?

来自分类Dev

为什么这在我的屏幕上发生?

来自分类Dev

为什么我的屏幕上充满^ [[6〜?

来自分类Dev

为什么我的代码无法正确加载?

来自分类Dev

Windows上的“系统”进程是什么,如果暂停了该如何重启?

来自分类Dev

我的鼠标指针会自己在屏幕上跳动-为什么?

来自分类Dev

为什么我的For循环在屏幕上不创建多个对象?

来自分类Dev

为什么我的变量没有打印到屏幕上?

来自分类Dev

为什么即使代码正确也无法加载我的图像?

来自分类Dev

为什么单击滚动条时控制台会暂停我的代码

来自分类Dev

在 1440 像素宽度的屏幕上查看时,为什么我的社交媒体页脚图标在屏幕外?

来自分类Dev

为什么我的代码在主线程上运行?

来自分类Dev

为什么我的代码在SPOJ上给出错误的答案?

来自分类Dev

为什么我在Azure上的代码隐藏出现404错误?

来自分类Dev

为什么我的代码无法在ipython Notebook上执行?

来自分类Dev

为什么我的代码在主线程上运行?

来自分类Dev

为什么我在Azure上的代码隐藏出现404错误?

来自分类Dev

为什么我在 Jupyter 上的代码不产生输出

来自分类Dev

为什么我的快速代码无法正常执行?Firebase身份验证

来自分类Dev

快速地,为什么我必须使用IBaction或IBOutlet在代码和UI之间进行通信?

来自分类Dev

编译时没有错误代码,但屏幕上没有数据表,我无法弄清为什么

来自分类Dev

为什么我的侧边栏CSS关闭动画在屏幕加载时被激活?

来自分类Dev

如果我使用Ubuntu,为什么我的屏幕上出现“ Official Microsoft Error”?

来自分类Dev

我正在创建的窗口在我的屏幕上跳来跳去,为什么?

来自分类Dev

当我在 Xcode 上移动屏幕时,为什么我会迟到看到文本?

来自分类Dev

为什么在此代码期间激活了我的屏幕键盘数字锁定?

来自分类Dev

为什么我选择了另一张纸后它在第三行停了下来

来自分类Dev

为什么此代码没有在屏幕上发布选定的选项?

Related 相关文章

  1. 1

    为什么Systemd.timer在OnCalendar上暂停了一段时间

  2. 2

    为什么在AWS EB的EC2实例上找不到我的快速代码?

  3. 3

    为什么这在我的屏幕上发生?

  4. 4

    为什么我的屏幕上充满^ [[6〜?

  5. 5

    为什么我的代码无法正确加载?

  6. 6

    Windows上的“系统”进程是什么,如果暂停了该如何重启?

  7. 7

    我的鼠标指针会自己在屏幕上跳动-为什么?

  8. 8

    为什么我的For循环在屏幕上不创建多个对象?

  9. 9

    为什么我的变量没有打印到屏幕上?

  10. 10

    为什么即使代码正确也无法加载我的图像?

  11. 11

    为什么单击滚动条时控制台会暂停我的代码

  12. 12

    在 1440 像素宽度的屏幕上查看时,为什么我的社交媒体页脚图标在屏幕外?

  13. 13

    为什么我的代码在主线程上运行?

  14. 14

    为什么我的代码在SPOJ上给出错误的答案?

  15. 15

    为什么我在Azure上的代码隐藏出现404错误?

  16. 16

    为什么我的代码无法在ipython Notebook上执行?

  17. 17

    为什么我的代码在主线程上运行?

  18. 18

    为什么我在Azure上的代码隐藏出现404错误?

  19. 19

    为什么我在 Jupyter 上的代码不产生输出

  20. 20

    为什么我的快速代码无法正常执行?Firebase身份验证

  21. 21

    快速地,为什么我必须使用IBaction或IBOutlet在代码和UI之间进行通信?

  22. 22

    编译时没有错误代码,但屏幕上没有数据表,我无法弄清为什么

  23. 23

    为什么我的侧边栏CSS关闭动画在屏幕加载时被激活?

  24. 24

    如果我使用Ubuntu,为什么我的屏幕上出现“ Official Microsoft Error”?

  25. 25

    我正在创建的窗口在我的屏幕上跳来跳去,为什么?

  26. 26

    当我在 Xcode 上移动屏幕时,为什么我会迟到看到文本?

  27. 27

    为什么在此代码期间激活了我的屏幕键盘数字锁定?

  28. 28

    为什么我选择了另一张纸后它在第三行停了下来

  29. 29

    为什么此代码没有在屏幕上发布选定的选项?

热门标签

归档