{NSDecimalNumber integerValue} ведет себя странно в iOS8

ОК, команда, это странно. [NSDecimalNumber integerValue] ведет себя странно.

Я сидел в точке останова, пытаясь выяснить, почему некоторые части моего приложения не работают в iOS8, и я смотрю на переменную под названием "timeSeconds". Это появляется как это в Представлении Переменных XCode:

_timeSeconds    (NSDecimalNumber *) 344.514533996581994496

Но когда я запрашиваю его в отладчике, я вижу это:

(lldb) p [self.timeSeconds doubleValue]
(double) $14 = 344.51453399658192
(lldb) p [self.timeSeconds intValue]
(int) $15 = 344
(lldb) p [self.timeSeconds integerValue]
(NSInteger) $16 = -5
(lldb) p (NSInteger)[self.timeSeconds intValue]
(NSInteger) $17 = 344

Видишь что "-5"? Может ли кто-нибудь из вас, прекрасные люди, воспроизвести или объяснить это, прежде чем я подам радар?

Вот SSCCE:

NSDecimalNumber *n = [NSDecimalNumber decimalNumberWithString:@"344.514533996581994496"];
NSLog(@"%@", n); // 344.514533996581994496
NSLog(@"%ld", (long)[n intValue]); // 344
NSLog(@"%ld", (long)[n integerValue]); // -5
NSLog(@"%ld", (long)[n unsignedIntegerValue]); // 12

Заранее спасибо!

Мэтью

Ответы на вопрос(4)

Ваш ответ на вопрос