在Objective-C中使用参数延迟后的方法

时间:2012-07-24 02:40:31

标签: objective-c xcode methods parameter-passing delay

我对Objective-C很新,所以请原谅我,如果我遗漏了一些常见的东西。我有一个方法,有几个(四个)必需参数需要反复运行,运行之间有一个延迟。通常,我会使用:

[self performSelector:@selector(methodName:) withObject:nil afterDelay:1.0f/10f];

问题是我需要在延迟后将参数(多个)传递回自身的方法;但这段代码只能传递一个。这里有什么我想念的吗?

2 个答案:

答案 0 :(得分:4)

查看dispatch_after()的文档。

答案 1 :(得分:2)

要回答实际问题,通常有两种方法可以将performSelector:withObject:afterDelay:用于多个数据:

  1. 将方法更改为仅采用一个参数,通常是将多个项目打包到类似数组的集合中。呼叫者必须打包,被叫者必须打开物品。如果您不想修改原始方法,可以添加包装器方法。
  2. 使用NSInvocation表示使用多个参数调用方法,然后对调用的performSelector:withObject:afterDelay:方法执行invoke。此方法不需要更改任何方法参数或添加任何方法,但更详细。