Ios 使用NSMutableArray获取对象不起作用?

Ios 使用NSMutableArray获取对象不起作用?,ios,objective-c,Ios,Objective C,因此,我创建了一个NSMutableArray,并在其中放置了一个UISlider。然而,出于某种原因,每当我试图得到它的价值,即 [[sliderArray objectAtIndex:index] value]; 它以NSString的形式出现,但当我尝试 [slider value]; 它以浮子的形式出现。知道为什么会这样吗?试试这样: UISlider *slider = [sliderArray objectAtIndex:index]; [slider value]; 问题是,

因此,我创建了一个NSMutableArray,并在其中放置了一个UISlider。然而,出于某种原因,每当我试图得到它的价值,即

[[sliderArray objectAtIndex:index] value];
它以NSString的形式出现,但当我尝试

[slider value];
它以浮子的形式出现。知道为什么会这样吗?

试试这样:

UISlider *slider = [sliderArray objectAtIndex:index];
[slider value];

问题是,当您使用objectAtIndex时,编译器不知道将检索哪种类型的对象。您需要对返回的对象进行类型转换,以便它知道您在谈论UISlider


从数组中获取UISlider:

UISlider *slider = [sliderArray objectAtIndex:index];
[slider value];
还是投下它

[(UISlider *)sliderArray[index] value];
这样试试

UISlider *slider = (UISlider *)[sliderArray objectAtIndex:index];
[slider value];

你能准确地显示这些电话的结果吗?我不太明白你的意思。在这两种情况下都会运行相同的方法-如果对象在运行时是一个UISlider,那么它就是一个UISlider。哇,我现在觉得自己太蠢了。我试过打字,但我把它放在了括号外哈哈。谢谢你这么善良的陌生人!
UISlider *slider = (UISlider *)[sliderArray objectAtIndex:index];
[slider value];