2011-05-30 91 views
0

嗨,我有一個類的函數,而這樣的:調用函數

- (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]; 

現在我可以打電話聽,但當呼籲平均電力我得到警告,它可能不會迴應,並在模擬功能崩潰。 我做錯了什麼?

非常感謝。

回答

1

您試圖將一個變量傳遞給不接受任何參數的函數。

我希望你的意思做的是:

Float32 tmp = [theInstance averagePower]; 
+0

謝謝,但我這樣做,他說:未使用的變量「TMP」。所以我應該怎麼稱呼它? – Curnelious 2011-05-31 06:45:25

+0

好吧,當我這樣做:Float32 tmp;然後在另一行中進行分配,工作。奇怪的是,我沒有那樣做,但是非常感謝 – Curnelious 2011-05-31 07:12:05

+0

你得到了「未使用的變量」警告,因爲你正在分配變量但尚未使用它。 – badgerr 2011-05-31 08:10:13

3

您調用帶有參數的方法:

[theInstance averagePower:tmp]; 

,但它並沒有在其定義的任何參數:

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

這導致飛機失事的原因。如果你想分配方法將tmp變量的返回值,你應該這樣做:

Float32 tmp = [theInstance averagePower]; 

爲了擺脫的警告確保你在相應的類的接口塊聲明這個方法( h文件)。