数値 (int) を次のメソッドに渡す必要があり、次のコードを試してみましたが、成功しませんでした:
int myNumber = 45;
[self performSelector:@selector(startNewThing) withObject:myNumber afterDelay:0.5f];
performSelector を介して数値を渡すにはどうすればよいですか?
数値 (int) を次のメソッドに渡す必要があり、次のコードを試してみましたが、成功しませんでした:
int myNumber = 45;
[self performSelector:@selector(startNewThing) withObject:myNumber afterDelay:0.5f];
performSelector を介して数値を渡すにはどうすればよいですか?
スニペットに加える変更は次のとおりです。
NSNumber *myNumber = [NSNumber numberWithInteger:45];
[self performSelector:@selector(startNewThing:) withObject:myNumber afterDelay:0.5f];
の後にコロンを付けたことに注意してください-startNewThing
。これは、メソッドがmyNumber
引数として受け入れることができるようにするためです。(これは、 -startNewThing: が実際に引数を取ることを前提としています。) またmyNumber
、スカラーからオブジェクトに変更したため、 に適切な変更を加える必要があります-startNewThing:
。
NSNumber を使用する必要があります。
NSNumber *myInt = [NSNumber numberWithInt:myNumber];
次にそれを渡し、セレクターでそれを受け取ったら:
NSInteger newInteger = [myNumber integerValue];
理解することが重要なのは、NSNumber を使用してプリミティブをオブジェクトに変換していることです。それが役立つことを願っています。
別:
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.5f * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
[self startNewThing:100];
});