2013-07-07 61 views
-1

我正在開發一個應用程序,在該應用程序中,我將調用一個方法,並傳遞參數NSTimeInterval。 我的方法可以聲明如下:帶對象的調用方法NSTimeInterval失敗

-(void)MethodwithTime:(NSTimeInterval)t 
{ 
    NSLog(@"Test, T = %f", t); 
    ... 
} 

我把它從UIViewController這樣的:

[myObject performSelector:@selector(MethodwithTime:) withObject:[NSNumber numberWithDouble:t]]; 

因爲我讀了NSTimeInterval是雙。但NSLog測試給了我一些零...測試,T = 0.000000

我該如何解決它?

謝謝!

+1

爲什麼你使用'performSelector:'?爲什麼不這樣做:'[myObject MethodwithTime:t];'? – rmaddy

+0

我已經修復它,並要求peform選擇器方法=) – user2057209

回答

3

NSTimeInterval不是一個對象(它是一些浮點數類型的typedef,但是如果你已經閱讀過它的文檔,你可能已經知道了)。因此,當你試圖將一個指針(將Objective-C對象表示爲)表示爲浮點基元時,你會得到意想不到的結果。如何將MethodwithTime:的參數類型更改爲NSNumber *

(呵呵,方法名以小寫字母和使用camelCaps,所以MethodwithName:不地道,MethodWithName:也不好,methodWithName:的。)

+0

如果更改參數是我唯一的解決方案,所以我會這樣做。 – user2057209

+0

@ user2057209請注意,然後顯然**你必須改變你如何登錄它。 – 2013-07-08 00:04:57

+0

我如何登錄? – user2057209

相關問題