2010-08-25 81 views
0

我如何編碼和解碼NSTimeInterval?如何編碼/解碼NSTimeInterval類型?

當我做這樣...

NSTimeInterval refreshInterval; 

[coder encodeObject:refreshInterval forKey:@"refreshinterval"]; 

它拋出一個錯誤的說法,不兼容的類型

如何解決這個問題呢?

或correspoinding事情是轉換NSTimeInterval爲int和副詩句..但我沒有找到的皈依任何方法..

請你建議我該如何解決這個問題。

謝謝。

回答

2

NSDate.h:

typedef double NSTimeInterval; 

所以,你可以把到NSTimeInterval爲雙。轉換爲int - (int)intervalround(interval)

重新編碼器,我不完全確定,但看起來,encodeObject接收(id)作爲參數。雙原子類型,所以你應該用的NSNumber將它包裝:

[coder encodeObject:[NSNumber numberWithDouble:refreshInterval] forKey:@"refreshinterval"]; 
0

kovpas打我吧:)

呀,變量是不是對象和NSNumber的返回,該方法encodeObject知道一個對象與...一起做。你可能必須使用[NSNumber numberWithDouble:(double)refreshInterval],但我真的不這麼認爲。如果你想跳過小數位,你需要(int)和numberWithInt來代替。

0

NSTimeInterval是一個double,所以你可以使用-(void)encodeDouble:(double)realv forKey:(NSString *)key