这段代码在 Objective-C 中意味着什么?
[CATransaction withAnimationSpeed:1.0 :^ {
if(newMultiplier > 100)
fillLayer.backgroundColor = ColRGBA(1, 1, 0, 0.2);
else
fillLayer.backgroundColor = ColRGBA(0, 0, 0, 0);
}];
^{}是什么意思?为什么使用这个符号。
[CATransaction withAnimationSpeed:1.0 :^ {
if(newMultiplier > 100)
fillLayer.backgroundColor = ColRGBA(1, 1, 0, 0.2);
else
fillLayer.backgroundColor = ColRGBA(0, 0, 0, 0);
}];
^{}mean? why use this symbol.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这称为块。它们与其他语言中的匿名函数类似,因为您使用它们来运行代码块作为其他例程(在您的例子中是动画)的一部分。当您不想在类中创建一次性方法只是为了将其选择器传递给 Objective-C 方法(如
performSelector:
)时,块会很有用。^
是块的符号。{ }
中的代码的行为与方法的{ }
块中的代码类似。有些块具有参数,其指定方式与 C 函数类似:
在给定的代码中,
^ {}
与^(void) {}
相同,即该块不采取任何参数。That is called a block. They're similar to anonymous functions in other languages, in that you use them to run code blocks as part of some other routine (in your case, animation). Blocks are useful when you don't want to create one-use methods in your class just so you can pass their selectors to Objective-C methods like
performSelector:
.^
is the symbol for a block. The code within the{ }
behaves just like the code in a method's{ }
block.Some blocks have parameters, specified similarly to C functions:
In your given code,
^ {}
is the same as^(void) {}
, i.e. the block doesn't take any parameters.