как кодировать / декодировать типа NSTimeInterval? - PullRequest
0 голосов
/ 25 августа 2010

Как мне кодировать и декодировать NSTimeInterval?

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

NSTimeInterval refreshInterval;

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

выдает ошибку, говоря, несовместимый тип

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

или соответствующая вещь - преобразовать NSTimeInterval в int и наоборот ... но я не нахожу никакого метода для преобразования ..

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

Спасибо.

Ответы [ 3 ]

2 голосов
/ 25 августа 2010

NSDate.h:

typedef double NSTimeInterval;

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

Re coder, я не совсем уверен, но похоже, что encodeObject получает (id) в качестве параметра. double является атомарным типом, поэтому вы должны заключить его в NSNumber:

[coder encodeObject:[NSNumber numberWithDouble:refreshInterval] forKey:@"refreshinterval"];
0 голосов
/ 15 сентября 2010

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

0 голосов
/ 25 августа 2010

Ковпа побеждает меня в этом:)

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

...