这个代码在objective-c中意味着什么?

时间:2011-01-17 11:05:54

标签: iphone objective-c caanimation

[CATransaction withAnimationSpeed:1.0 :^ {
            if(newMultiplier > 100)
                fillLayer.backgroundColor = ColRGBA(1, 1, 0, 0.2);
            else
                fillLayer.backgroundColor = ColRGBA(0, 0, 0, 0);
        }];

^ {}是什么意思?为什么要使用这个符号。

1 个答案:

答案 0 :(得分:5)

这称为block。它们类似于其他语言中的匿名函数,因为您使用它们来运行代码块作为其他一些例程(在您的情况下是动画)的一部分。当您不想在类中创建一次性使用方法时,块非常有用,因此您可以将它们的选择器传递给像performSelector:这样的Objective-C方法。

^是块的符号。 { }中的代码就像方法的{ }块中的代码一样。

某些块具有与C函数类似指定的参数:

^(int a, int b) {
    NSLog(@"a + b = %d", a + b);
}

在您的代码中,^ {}^(void) {}相同,即该块不带任何参数。