【问题标题】:what does this code mean in objective-c?这段代码在objective-c中是什么意思?
【发布时间】:2011-01-17 11:05:54
【问题描述】:
[CATransaction withAnimationSpeed:1.0 :^ {
            if(newMultiplier > 100)
                fillLayer.backgroundColor = ColRGBA(1, 1, 0, 0.2);
            else
                fillLayer.backgroundColor = ColRGBA(0, 0, 0, 0);
        }];

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

【问题讨论】:

    标签: iphone objective-c caanimation


    【解决方案1】:

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-28
      • 1970-01-01
      相关资源
      最近更新 更多