当尝试在Xcode 4.6中编译以下CorePlot 1.1示例时,我收到编译器错误。
DatePlot
CPTTestApp - iPad
CPTUtilities.m
中的编译器错误:Operand of ? changes signedness: 'int' to 'NSUInteger' (aka 'unsigned int')
NSRange CPTExpandedRange(NSRange range, NSInteger expandBy)
{
NSUInteger loc = MAX(0, (NSInteger)range.location - expandBy);
NSUInteger lowerExpsion = range.location - loc; // Here is the error
NSUInteger length = (NSUInteger)( (NSInteger)(range.length + lowerExpansion) + expandBy);
return NSMakeRange(loc, length);
}
答案 0 :(得分:6)
是的,答案放在那里,只是改变了功能,我留下了一份副本,说明了正确的代码:
NSRange CPTExpandedRange(NSRange range, NSInteger expandBy)
//NSUInteger loc = MAX(0, (NSInteger)range.location - expandBy);
//NSUInteger lowerExpansion = range.location - loc;
//NSUInteger length = (NSUInteger)( (NSInteger)(range.length + lowerExpansion) + expandBy );
NSInteger loc = MAX(0, (NSInteger)range.location - expandBy);
NSInteger lowerExpansion = (NSInteger)range.location - loc;
NSInteger length = MAX(0, (NSInteger)range.length + lowerExpansion + expandBy);
//return NSMakeRange(loc, length);
return NSMakeRange( (NSUInteger)loc, (NSUInteger)length );
答案 1 :(得分:3)
此问题(问题#501)现已由Core Plot团队修复:
答案 2 :(得分:1)
很抱歉,但我无法找到修复此编译器错误的方法。我和亚历克斯一样。 尝试编译示例并获得相同的错误。 在XCode 4.6和Mountain Lion上运行。 CorePlot 1.1并尝试了目标5.1,6.0和6.1
感谢您的帮助。