0

「GetTiming()」関数の使用に関して、1 つのエラーと 1 つの警告があります。私のコルドは次のとおりです。

[values addObject:[NSNumber numberWithFloat:25.0]];
[timings addObject:GetTiming(kCAMediaTimingFunctionEaseIn)];
[keytimes addObject:[NSNumber numberWithFloat:0.0]];

以下のものを輸入しています。

#import <QuartzCore/CAAnimation.h>
#import <QuartzCore/CAMediaTimingFunction.h>

私が推測するエラーは、私がARCを使用しているという事実によるものであり、次のように述べています。

implicit conversion of 'int' to 'id' is disallowed with ARC.

関連ファイルで ARC を無効にしようとしましたが、エラーは解決しません。

警告については、次のように述べています。

implicit declaration of function 'GetTiming' is invalid in C99

これらの問題をどのように修正できますか?どうもありがとう!

4

1 に答える 1

2

まず、GetTiming関数が存在することを確認します (正しいヘッダーを含めます)。GetTimingが返された場合int、問題はプリミティブ値を配列に追加できないことです。で返された値をラップする必要がありますNSNumber

[timings addObject:
    [NSNumber numberWithInt:GetTiming(kCAMediaTimingFunctionEaseIn)]];

編集:

で宣言された関数がありませんJackController.m

CAMediaTimingFunction* GetTiming(NSString* name) {
    return [CAMediaTimingFunction functionWithName:name];
}

簡単にするために、その関数を使用せず、直接作成してください。

[timings addObject:
    [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn]];
于 2011-12-13T21:20:24.593 に答える