2010-08-25 1 views
0

Как кодировать и декодировать NSTimeInterval?как кодировать/декодировать тип NSTimeInterval?

, когда я делаю это таким образом ...

NSTimeInterval refreshInterval; 

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

это приведет к появлению ошибки говоря, несовместимый тип

Как решить эту проблему?

или correspoinding вещь, чтобы преобразовать NSTimeInterval в целое и вице-стих .. но я не нахожу какой-либо метод для конвертации ..

пожалуйста, предложить мне, как решить эту проблему.

Thank you.

ответ

2

NSDate.h:

typedef double NSTimeInterval; 

Таким образом, вы можете обращаться к NSTimeInterval в два раза. Преобразование в int - (int)interval или round(interval).

Re coder, я не совсем уверен, но кажется, что encodeObject получает (id) в качестве параметра. Двойник атомный тип, так что вы должны обернуть его NSNumber:

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

kovpas опередил меня :)

Да, переменные не являются объектами и NSNumber возвращает объект, метод encodeObject знает, что делайте с. Возможно, вам придется использовать [NSNumber numberWithDouble: (double) refreshInterval], но я действительно так не думаю. Если вы хотите пропустить десятичные разряды, вам нужно (int) и numberWithInt вместо этого.

0

NSTimeInterval является двойной, поэтому вы можете использовать -(void)encodeDouble:(double)realv forKey:(NSString *)key.