![]() |
1
0
是的,它与多线程以及您在主线程上的轮询有关。您应该在后台线程中放入一个回调。并且不会阻塞主线程。
改为make
编辑: while(!碰撞完成) 始终为true,因为当您创建另一个线程时,指令被困在“while”语句中,并且不会像您预期的那样每次“collisionDone”都重新评估,而是在while范围内对其进行评估。顺便说一句,可能有一些优化器的东西,并且“collisionDone”只能在本地范围内进行评估(但这里我只是猜测,因为它依赖于编译器)。您应该重新输入该方法以使其工作,或者在完成后加入线程。由于您不希望这类东西使用复杂的代码,所以块正是您想要的。libDispatch非常适合这一点。 因此,您可以尝试“self.collisionDone”以尝试获得真正的指针。但有很多机会不会改变任何事情。 或者,您可以在后台完成您的工作,完成后,向您的客户端代码发送信号/回调。你不需要像以前那样进行投票。这真是糟糕的设计(真的相信我;) |
![]() |
2
0
目前尚不清楚解决这个问题的最佳方法是什么,也不清楚问题的实际原因是什么(是的
我的结论是:从应用程序中完全删除这种多线程的尝试。这是不必要的,而且好处也令人怀疑。 @Fonix:你提到的问题正好表明了我想做什么,然而,他们提出的解决方案似乎都不起作用。 |
![]() |
3
0
在学校与我的程序员朋友讨论后的最终解决方案是:
|
![]() |
Martin sku · 在目标C中打印时间 2 年前 |
![]() |
Vinod prajapat · 如何更新数组的最后一个元素? 2 年前 |
![]() |
subin272 · 修复iOS中的多个按钮单击事件? 6 年前 |
![]() |
James Chan · 如何使用锁定/解锁? 6 年前 |
![]() |
Josh F. · NSBundle mainBundle返回零 6 年前 |