0

我有以下构造,我想对其进行简化。为了摆脱 NSNumber 与 NSDecimalNumber 编译器警告,我不得不使用 NSString (?)。

NSDecimalNumber *ticksSinceSeventies = [NSDecimalNumber decimalNumberWithString:[NSString stringWithFormat:@"%d",[self timeIntervalSince1970]]];

感谢您的帮助!

4

2 回答 2

2

如果你只使用NSTimeIntervals,它是双精度数,那么NSDecimalNumber提供给你的以 10 为底的算术并不是真正必要的。你可以NSNumber改用。

因此,您的构造函数将是:

NSNumber *ticksSinceSeventies = [NSNumber numberWithDouble:[self timeIntervalSince1970]];

(假设 self 是一个NSDate子类,或者这是在一个类别方法中)。

于 2011-09-09T16:24:46.213 回答
0

这是一种方法:

[NSDecimalNumber decimalNumberWithString:[[self timeIntervalSince1970] stringValue]];

可能有一些方法可以更好地简化它,但我不知道。

于 2011-09-09T09:31:40.590 回答