无法重新分配 objective C 中的 NSArray 值

Trouble Reassigning NSArray values in objective C

我在使用 objective-c 中的基本 for 循环时遇到问题。我对这种语言有点陌生,但我正在努力实现以下目标:

for(int i=0; i<[yVals count]; i++)
{
    yVals[i] = exp(yVals[i]);
}

其中 yVals 是 NSArray 中的双精度数组。 但是,我在 xCode 中收到此错误:"Passing 'id' to parameter type 'double'".

我该如何解决这个问题?我是不是把事情过于简单化了?

您需要 box/unbox 基本类型。您的代码需要类似于:

for(int i=0; i<[yVals count]; i++)
{
    yVals[i] = @(exp([yVals[i] doubleValue]));
}

我假设 yValsNSMutableArrayNSNumber 个对象。

请注意,需要拨打号码 doubleValue,以便您可以拨打 exp()。然后 @( ) 语法框将结果备份到 NSNumber 对象中,因此您可以将其放回数组中。