0

关于“GetTiming()”函数的使用,我遇到了一个错误和一个警告。我的colde如下:

[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 回答