调用一个函数

时间:2011-05-30 21:00:17

标签: objective-c xcode

嗨我在类上有一个函数,就像这样:

- (Float32)averagePower {   
    if (![self isListening])
        return 0.0;
    float tmp = [self levels][0].mAveragePower;
    tmp = tmp * 100;
    NSLog(@"%f",  tmp);
    return tmp;
}

我从另一个类的viewdidload调用它:

SoundSensor *theInstance = [[SoundSensor alloc] init];
    [theInstance listen];
    Float32 tmp;
    [theInstance averagePower:tmp];

现在我可以打电话来听,但是在打电话给普通电力时,我得到警告,它可能没有响应,而且功能在模拟中崩溃了。 我做错了什么?

非常感谢。

2 个答案:

答案 0 :(得分:3)

您正在使用参数调用方法:

 [theInstance averagePower:tmp];

但它的定义中没有任何参数:

- (Float32)averagePower {
// ...
}

这导致了崩溃。如果您尝试将方法的返回值分配给tmp变量,则应执行以下操作:

Float32 tmp = [theInstance averagePower];

要消除警告,请确保在相应类(h文件)的接口块中声明此方法。

答案 1 :(得分:1)

您正在尝试将变量传递给不接受任何参数的函数。

我希望你的意思是:

Float32 tmp = [theInstance averagePower];