这段代码在objective-c中是啥意思?
Posted
技术标签:
【中文标题】这段代码在objective-c中是啥意思?【英文标题】: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);
];
^是什么意思?为什么要使用这个符号。
【问题讨论】:
【参考方案1】:这称为block。它们类似于其他语言中的匿名函数,因为您使用它们来运行代码块作为其他例程(在您的情况下为动画)的一部分。当您不想在类中创建一次性方法时,块很有用,这样您就可以将它们的选择器传递给诸如 performSelector:
这样的 Objective-C 方法。
^
是块的符号。
中的代码的行为就像方法的
块中的代码一样。
有些块有参数,指定类似于 C 函数:
^(int a, int b)
NSLog(@"a + b = %d", a + b);
在您给定的代码中,^
与 ^(void)
相同,即该块不带任何参数。
【讨论】:
以上是关于这段代码在objective-c中是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章