1

私は Objective-C にかなり慣れていないので、よくあることを見逃していたらご容赦ください。実行間の遅延で何度も実行する必要があるいくつか (4 つ) の必須パラメーターを持つメソッドがあります。通常、私は使用します:

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

問題は、遅延後にパラメーター (複数) を自分自身に戻すメソッドが必要なことです。しかし、このコードは 1 つしか渡すことができません。私がここに欠けているものはありますか?

4

2 に答える 2

4

のドキュメントを確認してくださいdispatch_after()

于 2012-07-24T02:44:13.743 に答える
2

To answer the actual question, there are generally two ways to use performSelector:withObject:afterDelay: with multiple pieces of data:

  1. Change the method to take only one parameter, usually by packing the multiple items into a collection like an array. The caller will have to pack and the callee will have to unpack the items. You can add a wrapper method if you don't want to modify the original method.
  2. Use NSInvocation to represent the call of the method with multiple parameters, then do performSelector:withObject:afterDelay: on the invocation's invoke method. This method does not require changing any method parameters or adding any methods, but is more verbose.
于 2012-08-06T22:48:19.543 に答える