我有以下构造,我想简化。我不得不使用NSString(?)来摆脱NSNumber与NSDecimalNumber编译器的警告。
NSDecimalNumber *ticksSinceSeventies = [NSDecimalNumber decimalNumberWithString:[NSString stringWithFormat:@"%d",[self timeIntervalSince1970]]];
感谢您的帮助!
答案 0 :(得分:2)
如果你只使用NSTimeInterval
,它们是双倍的,那么NSDecimalNumber
给你的基数10算术并不是必需的。您可以改为使用NSNumber
。
因此,您的构造函数将是:
NSNumber *ticksSinceSeventies = [NSNumber numberWithDouble:[self timeIntervalSince1970]];
(假设self是NSDate
子类,或者这是在类别方法中。)
答案 1 :(得分:0)
这是一种方式:
[NSDecimalNumber decimalNumberWithString:[[self timeIntervalSince1970] stringValue]];
有些方法可以更好地简化它,但我不知道。