在我的构造函数中,我想创建一个随机颜色。
因此,我需要三个0到1范围内的随机7位浮点数,它们组成了颜色的红色,绿色和蓝色分量。我没有写很长的random() % 128 / 128.0
三遍,而是将它放在了一个块中:
CGFloat (^randFloat)() = ^(){ return random() % 128 / 128.0; };
color = CGColorCreateGenericRGB(randFloat(), randFloat(), randFloat(), .5);
那是使用积木的有效方法吗?
如果没有,您将使用什么呢?
最佳答案
您要返回randFloat
吗? randFloat
是否会使用与附近功能不可分离的任何状态(即randFloat
是否为闭包)?如果不是这样,它会更便于移植(例如,iPhone官方SDK还不支持块),并且可以在函数外部创建静态函数,效率很高:
static CGFloat randFloat() {
return random() % 128 / 128.0;
}
...
color = CGColorCreateGenericRGB(randFloat(), randFloat(), randFloat(), .5);
关于objective-c - 这是Obj-C中块的有效用法吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2419202/