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

Ale*_*exR 4 cocoa-touch objective-c core-plot ios

当尝试在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);
}
Run Code Online (Sandbox Code Playgroud)

小智 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 );
Run Code Online (Sandbox Code Playgroud)