Ios 64位设备上的CGRectIntegrator中存在错误?

Ios 64位设备上的CGRectIntegrator中存在错误?,ios,64-bit,core-graphics,Ios,64 Bit,Core Graphics,我看到CGRect积分有奇怪的行为。这是我的代码: CGRect rect = CGRectMake(75, 22, 235, 48.000000000000007); rect = CGRectIntegral(rect); NSAssert1(rect.size.height == 49, @"I expected 49, but I got: %f!", rect.size.height); // works on 32 bit iPhone simulator // throws an

我看到CGRect积分有奇怪的行为。这是我的代码:

CGRect rect = CGRectMake(75, 22, 235, 48.000000000000007);
rect = CGRectIntegral(rect);
NSAssert1(rect.size.height == 49, @"I expected 49, but I got: %f!", rect.size.height);

// works on 32 bit iPhone simulator
// throws an exception on iPhone 64 bit simulator & iPhone 5s: 
// Terminating app due to uncaught exception 'NSInternalInconsistencyException',
// reason: 'I expected 49, but I got: 48.000000!'
我的猜测是,这与CGFloat是32位上的浮点和64位上的双精度浮点有关——并且与假定在CGRectIntegral中使用ceil有关

这是苹果代码中的错误吗? 我怎样才能优雅地解决这个问题?