2010-08-25 36 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