我有这个代码:
-(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;
}
目标是在用户按住按钮时开始旋转 View 。当用户释放它时,计时器将停止。
但是我给了这个:
-[__NSCFTimer intValue]: unrecognized selector sent to instance 0x4ae360
但是如果我在 userInfo 中传递一个 NSNumber 类,为什么我会收到计时器?
谢谢。
最佳答案
您的计时器操作方法应如下所示
-(void)rotateSelectedItem:(NSTimer*)sender
您可以通过以下方式获取 userInfo
NSNumber *userInfo = sender.userInfo;
关于ios - NSTimer 用户信息。对象如何传递给选择器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9522872/