2012-12-09 40 views
0

我有這樣的方法:入住時間差調用的Objective-C

- (void) receivedData { 
} 

這應該運行約每50至100毫秒。有沒有辦法檢查自上次調用以來的時間,並將最後一次打印到NSString?

+0

有一個適當的持久變量,分配給該方法的NSDate或NSTimeInterval。在進入該方法時,可以通過'[NSDate date]'獲得當前時間,然後根據您希望的保存值進行比較,然後將當前時間存儲到持久變量中。 –

回答

1
@interface MyClass() { 
    NSDate* receivedDataTimestamp; 
    .... 
} 

... 

-(void)receivedData { 
    NSDate* now = [NSDate date]; 
    if (receivedDataTimestamp != nil) { 
     NSTimeInterval delta = [now timeIntervalSinceDate:receivedDataTimestamp]; 
     NSLog(@"%f seconds since recevedData was called last", delta); 
    } 
    receivedDataTimestamp = now; 
    .... 
} 
+0

你應該使用'%lf'作爲double(這是NSTimeInterval的意思),雖然它在使用'printf'時可能沒有什麼不同,但如果使用'scanf',它肯定會改變事情。 –

+0

@pauls - 感謝您修復我的漏洞 - 我通常在需要時忘記了「*」,但當我不需要它時,他們有一種爬行的方式。 –

+0

真棒!謝謝:)完美的作品。 – objectiveccoder001