我正在處理一些非常奇怪的問題,只是試圖在obj-c中傳遞一個float參數。通過浮動給垃圾值
我有一個其經由NSNotification調用的方法:
- (void)presetChanged:(NSNotification*)notification {
float newValue = [[S76PresetManager sharedManager] getValueForKey:symbol];
[self setValue:newValue animated:YES];
[PdBase sendFloat:newValue toReceiver:symbol];
}
當我通過調試器,浮子運行此(比如0.5)將保持不變以及被髮送到[PdBase sendFloat:]線。但是,在[self setValue:animated:]調用中,我得到的垃圾值爲3.68934881e + 19。這很奇怪。有什麼建議麼?
在此先感謝
編輯:沒什麼特別的是發生[個體經營的setValue:動畫:],只是在做一些界限將它發送到另一個方法之前檢查...
- (void)setValue:(float)newValue animated:(BOOL)animated {
float oldValue = value;
if (newValue < 0.0)
value = 0.0;
else if (newValue > maxValue)
value = maxValue;
else
value = newValue;
[self valueDidChangeFrom:oldValue to:value animated:animated];
}
setValue調用的外觀如何? – Goz
可以請你展示setValue的方法定義:animated:? – bizsytes
在頭文件中呢? (如果它在頭文件中未聲明,並且setValue:animated:方法在源代碼後面比presetChanged更晚:那麼您可以改變參數,因爲簽名將默認爲id的參數類型 - 儘管編譯器會警告您這種情況...) –