CGAffineTransformMakeScale的隐式声明无效

时间:2014-07-04 06:17:37

标签: ios objective-c xcode cgaffinetransform

我的代码用于翻译和缩放用于工作的按钮。 不知怎的,Xcode现在发出警告:Implicit declaration of function 'CGAffineTransformMakeScale' is invalid in C99.以及语义问题:Initializing 'CGAffineTransform' (aka 'struct CGAffineTransform') with an expression of incompatible type 'int'

以下代码可能出现什么问题?

    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDelegate:self];
    [UIView setAnimationDuration:1.5];
    [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
    CGAffineTransform scaleTrans  = CGAffineTransformMakeScale(1.0f, 1.0f);//This is where both, the warning and error occur.
    CGAffineTransform xTrans  = CGAffineTransformMakeTranslation(650.0f,0.0f);
    Button.transform = CGAffineTransformConcat(scaleTrans, xTrans);//combine translation & scale

2 个答案:

答案 0 :(得分:1)

问题是编译器无法找到声明CGAffineTransformMake的位置,因此它认为您正在方法的中间创建一个新函数(不允许)。此外,因为它无法找到CGAffineTransformMakeScale的定义,所以它会假定它返回int,而不是CGAffineTransform。问题可能是您没有将QuartzCore框架与您的项目相关联,或者您没有在使用<QuartzCore/QuartzCore.h>的文件中导入CAAffineTransformMake

答案 1 :(得分:0)

Xcode 6 beta 3解决了这个问题。