Core Plot 1.1:编译Core Plot示例时编译错误

时间:2013-01-25 13:06:27

标签: ios objective-c cocoa-touch core-plot

当尝试在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);
}

3 个答案:

答案 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团队修复:

Issue 501 fixed

答案 2 :(得分:1)

很抱歉,但我无法找到修复此编译器错误的方法。我和亚历克斯一样。 尝试编译示例并获得相同的错误。 在XCode 4.6和Mountain Lion上运行。 CorePlot 1.1并尝试了目标5.1,6.0和6.1

感谢您的帮助。