CGAffineTransform给出了预期的表达式错误

时间:2014-01-28 09:53:38

标签: ios objective-c

IU在Java方面经验丰富,但对Objective C来说是新手,所以这可能非常愚蠢。尽管如此,我一直在努力,寻找我从以下代码中得到预期表达式错误的原因。

CGAffineTransform move = CGAffineTransformMakeTranslation(middleX, middleY);
[shapePath applyTransform:move];
[shapePath stroke];
[shapePath fill];

shapePath是一个UIBezierPath,middleX和middleY是CFFloats。

错误是一个“解析问题”,它只是在上面第一行说“预期表达”

2 个答案:

答案 0 :(得分:1)

修改

使用在switch语句中使用的额外上下文,我知道出了什么问题。

如果不将大小写括在大括号中,则无法在switch语句中声明变量。你可以在this answer中了解它的原因(简而言之,它们不会引入新的范围)。

例如,创建这样的变量会给出您面临的编译器错误:

enter image description here

但如果在案例周围添加大括号(如下所示),则可以在该范围内创建变量

enter image description here


原始答案

您在该问题中显示的代码没有问题。以下代码适用于我,没有任何编译器错误:

UIBezierPath *shapePath = [UIBezierPath bezierPath];
CGFloat middleX = 10.0;
CGFloat middleY = 10.0;

CGAffineTransform move = CGAffineTransformMakeTranslation(middleX, middleY);
[shapePath applyTransform:move];
[shapePath stroke];
[shapePath fill];

您应该在上面提到的问题中查找其他语法错误。

例如,作为suggested in this answer,您可能在代码中的其他位置缺少结束括号(})。

答案 1 :(得分:0)

此代码位于switch子句中。当我在它之外宣布移动变量时,它就消失了。不知道为什么。现在它有效。