NSTimer userInfo.对象如何传递给选择器?

Nem*_*Sys 6 nstimer userinfo ios

我有这个代码:

-(void)startRotation:(RDUtilitiesBarRotation)mode {
    rotationTimer = [NSTimer scheduledTimerWithTimeInterval:0.1f target:self selector:@selector(rotateSelectedItem:) userInfo:[NSNumber numberWithInt:mode] repeats:YES];
}
-(void)rotateSelectedItem:(NSNumber*)sender {
    float currAngle = [selectedItem currentRotation];
    if ([sender intValue] == RDUtilitiesBarRotationLeft) {
        [selectedItem rotateImage:currAngle - 1];
    }
    else {
        [selectedItem rotateImage:currAngle + 1];
    }
}
-(void)stopRotation {
    [rotationTimer invalidate];
    rotationTimer = nil;
}
Run Code Online (Sandbox Code Playgroud)

当用户按住按钮时,目标开始旋转视图.当用户释放它时,计时器将停止.

但我这样说:

- [__ NSCFTimer intValue]:无法识别的选择器发送到实例0x4ae360

但是,如果我在userInfo中调用一个NSNumber类,为什么我要收到定时器?

谢谢.

joe*_*ick 25

您的计时器操作方法应如下所示

-(void)rotateSelectedItem:(NSTimer*)sender
Run Code Online (Sandbox Code Playgroud)

您可以通过执行来获取userInfo

NSNumber *userInfo = sender.userInfo;
Run Code Online (Sandbox Code Playgroud)