iOS将输出浮点参数传递给函数



我正在尝试创建一个函数来计算一组数字的平均值、最大值、最小值和标准差。

我希望它能像UIColor函数一样工作——(void)getRed:green:blue:alpha。即,您传入四个浮点值,然后函数会覆盖它们。

我很难找到合适的语法。

我的功能是…

- (void)calculateStatsAverage:(float)average
            standardDeviation:(float)standardDeviation
                      minimum:(float)minimum
                      maximum:(float)maximum
{
    //pseudo code
    average = total / count;
    minimum = min value;
    etc...
    //
}

我现在遇到的问题是重新获得价值。

如果我将函数更改为使用float*(UIColor函数就是这样做的),那么我的计算不喜欢分配变量。

为了简化。。。

想象一下这些功能。第一个是从其他地方调用的。

- (void)runThisFunction
{
    float someOutputValue = 0.0;
    [self changeTheValue:someOutputValue];
    NSLog(@"The value is %f", someOutputValue);
}
- (void)changeTheValue:(float)value
{
    value = 10.0;
}

我希望这段代码输出"值为10.0";但目前我得到的是"值为0.0"。

请你教我如何写这两个函数好吗。从那里我就能解决剩下的问题。

感谢

- (void)passByRefMethod:(float *)ptr
{
    *ptr = MYVALUE;
}

抱歉格式化,在电话中键入。希望这能有所帮助!

这种技术通常被称为pass-by-reference,它是C的一部分,因此您可以使用它来搜索更多信息。

您的NSLog显示本地变量"someOutputValue"的值,该值已被赋值为0.0。

您的"changeTheValue"方法无效。

以下代码可能会有所帮助,

- (void)runThisFunction
{
    float someOutputValue = 0.0;
    float resultOfCalc = [self calcTheValue:someOutputValue];
    NSLog(@"The value is %f", resultOfCalc);
}
- (float) changeTheValue:(float)value // note that this method returns a float
{
    float newValue;
    // do whatever calc is appropriate, e.g.
    newValue = value + 10.0;
    return newValue;  // pass back the result of calc
}

这将输出

The value is 10.

最新更新