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

それをブロックと呼びます。これらは、他のルーチン (この場合はアニメーション) の一部としてコード ブロックを実行するために使用するという点で、他の言語の無名関数に似ています。ブロックは、セレクターをperformSelector:.

^ブロックの記号です。内の{ }コードは、メソッドの{ }ブロック内のコードと同じように動作します。

一部のブロックには、C 関数と同様に指定されるパラメーターがあります。

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

指定されたコードで^ {}は、 は と同じ^(void) {}です。つまり、ブロックはパラメーターを取りません。

于 2011-01-17T11:09:44.263 に答える