Вопрос

Как я могу кодировать и декодировать NStimeInterval?

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

NSTimeInterval refreshInterval;

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

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

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

Или корреспонзинг - это преобразование NStimeInterval в INT и вице-вице-стиш. Но я не нахожу никакого метода для преобразования ..

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

Спасибо.

Это было полезно?

Решение

Nsdate.h:

typedef double NSTimeInterval;

Итак, вы можете относиться к NStimeInterVal в качестве двойного. Преобразование в INT - (int)interval или round(interval).

Re Coder, я не совсем уверен, но кажется, что EncodeObject получает (ID) в качестве параметра. Двойной - это атомный тип, поэтому вы должны обернуть его с Nsnumber:

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

Другие советы

Ковпас победил меня к этому :)

Да, переменные - это не объекты, а NSNUMBER возвращает объект, который метод EncodeObject знает, с чем делать. Возможно, вам придется использовать [NSNUMBER NUMBERWITHDOUBLE: (Двойной) RefreshiNDerval], но я действительно так не думаю. Если вы хотите пропустить десятичные места, которые вам нужны (INT), а также NumberWithint.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top