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

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

4

1 回答 1

5

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

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

某些块具有参数,其指定类似于 C 函数:

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

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

于 2011-01-17T11:09:44.263 回答