Хотя отправитель «должен» быть UISlider, компилятор этого не знает.Все, что он видит, это id
, который он связывает с первой подходящей сигнатурой метода, которую он может найти;вероятно, тот, который возвращает что-то отличное от float (и в качестве окончательного предположения, компилятор предположит, что он возвращает id
).
В этом случае вам нужно будет перенести это в UISlider:*
- (IBAction)slide: (id)sender {
float pos = [(UISlider *)sender value];
loadValue.progress = pos;
}
Использование NSAssert()
или if()
для двойной проверки того, что это факт, UISlider
не будет плохой идеей, но не является строго необходимым.