4

尝试在 Xcode 4.6 中编译以下 CorePlot 1.1 示例时,出现编译器错误。

  • DatePlot
  • CPTTestApp - iPad

编译器错误CPTUtilities.mOperand 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);
}
4

3 回答 3

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 );
于 2013-02-26T02:35:20.370 回答
3

Core Plot 团队现已修复此问题(问题 #501):

问题 501 已修复

于 2013-01-28T07:26:36.693 回答
1

抱歉,但我找不到如何修复此编译器错误。我和亚历克斯的情况一样。尝试编译示例并得到相同的错误。在 XCode 4.6 和 Mountain Lion 上运行。CorePlot 1.1 并尝试过目标 5.1、6.0 和 6.1

谢谢你的帮助。

于 2013-02-08T15:44:19.107 回答