4

次の CorePlot 1.1 の例を Xcode 4.6 でコンパイルしようとすると、コンパイラ エラーが発生します。

  • 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);
}
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

この問題(問題#501)は、CorePlotチームによって修正されました。

問題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 に答える