2012-11-10 59 views
0

非常初学者obj-c问题。顺序方法执行obj-c

我的任务是做简单的序列时,查看负载:

  • 暂停2个secons
  • 方法1执行
  • 暂停2s中
  • 方法2.执行
  • 暂停2s中
  • 方法3执行

我为iOS5 +编写此代码,以便可以使用块或其他功能。我试图

[NSThread sleepForTimeInterval:x]; 

,使方法执行之间的停顿,但三个暂停添加到一个和我有一个很大的停顿,这是错的一块。 如何以正确的方式做到这一点?

回答

3

睡NSThread永远不是正确的方式来处理定时执行方法。您需要NSTimer,您可以设置为在两秒钟后触发相同的方法(然后让该方法确定下一个要执行的选择器)还是将三个定时器设置为在彼此之后触发两秒钟,每个调用另一种方法。

3

您可以使用performSelector:withObject:afterDelay:或CodaFi所说的NSTimer。两种方法都允许将对象传递给方法,如果需要传递多个参数,则该对象可以是数组或字典。

1

我倒是链的方法:

  • 电话1.方法,使其调用2.
    1. 方法应该调用3.
    1. 应着手4. ...
+1

虽然有些脆弱,如果他需要使用他们的东西,他们并不相互依赖。 –

+1

好吧,他可以有一个属性'nextMethod'包含逻辑。 –

+1

够公平的,但是你必须有一个状态来跟踪你正在使用哪一个状态。那么当他自己发起这个,然后用户在这些定时器触发的时候启动它会发生什么?然后你有一种情况,你的计数器计算你所使用的方法太多了,并且你不同步,所以你需要有一个队列来保存这一系列方法的所有调用,直到每个3-方法链已经完成等等等等等等等等。尽管我们不知道这些方法是什么,所有的猜测都让我留下来 –