我必须将数字(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];
});