{NSDecimalNumber integerValue} se comporta de manera extraña en iOS8

OK equipo, esto es raro. [NSDecimalNumber integerValue] se comporta de manera extraña.

Estoy sentado en un punto de interrupción, tratando de entender por qué algunas partes de mi aplicación están rotas en iOS8, y estoy viendo una variable llamada "timeSeconds". Aparece así en la Vista de variables de Xcode:

_timeSeconds    (NSDecimalNumber *) 344.514533996581994496

Pero cuando lo consulto en el depurador, veo esto:

(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

¿Ves eso "-5"? ¿Alguno de ustedes, gente hermosa, puede reproducirlo o explicarlo antes de archivar un radar?

Aquí está el 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

¡Gracias por adelantado!

Mateo

Respuestas a la pregunta(4)

Su respuesta a la pregunta