UISlider方法的价值?

fuz*_*oat 2 iphone cocoa-touch objective-c

任何人都可以指出我关于滑块的正确方向,下面的版本是我的第一次尝试(范围是0.0 - 100.0)我得到的结果是不对的.

// Version 1.0
-(IBAction)sliderMoved:(id)sender {
    NSLog(@"SliderValue ... %d",(int)[sender value]);
}

// OUTPUT:
// [1845:207] SliderMoved ... -1.991753
// [1845:207] SliderMoved ... 0.000000
// [1845:207] SliderMoved ... 0.000000
// [1845:207] SliderMoved ... 32768.000435
Run Code Online (Sandbox Code Playgroud)

使用下面的版本,我得到了我期望的值,我在version_001中缺少什么?

// Version 2.0
-(IBAction)sliderMoved:(UISlider *)sender {
    NSLog(@"SliderValue ... %d",(int)[sender value]);
}

// OUTPUT:
// [1914:207] SliderMoved ... 1
// [1914:207] SliderMoved ... 2
// [1914:207] SliderMoved ... 3
// [1914:207] SliderMoved ... 4
Run Code Online (Sandbox Code Playgroud)

EDIT_001:

添加UISlider *slider = (UISlider *)sender;物质G点确实有效.我理解使用发送器是惯例,但在我看来,在这种情况下,不仅约定不太明确,它也更复杂,代码更多.(UISlider *)在版本2.0中静态输入方法似乎是明智的IMO .有没有我在滑块IBAction方法中忽略的情况,使用(UISlider*)不起作用?

欢呼加里

Sub*_*ubG 12

尝试:

-(IBAction)sliderMoved:(id)sender {
    UISlider *slider = (UISlider *)sender;
    NSLog(@"SliderValue ... %d",(int)[slider value]);
}
Run Code Online (Sandbox Code Playgroud)