遇到了一些我不知道的代码语法。谁能解释一下

时间:2013-03-26 06:20:16

标签: iphone ios objective-c

此代码

_gradientLayer.locations = @[@0.00f, @0.01f, @0.95f, @1.00f];

我知道它声明了一个数组但我在哪里可以找到任何参考来阅读更多关于它的信息。

2 个答案:

答案 0 :(得分:4)

这是Obj-c中新添加的文字。

  

Apple编译器版本的用户可以使用这些功能   Apple LLVM编译器4.0。开源LLVM.org编译器的用户   发行版可以使用以clang v3.1开头的这些功能。

您可以在运行XCode4.4及更高版本的编译器中找到它。

查找here完整参考。

答案 1 :(得分:2)

_gradientLayer是CAGradient图层,您必须定义位置和颜色数组以将渐变添加到渐变图层。

CAGradientLayer *layer = [CAGradientLayer layer];
layer.colors = [NSArray arrayWithObjects:
                (id)[[UIColor darkKinepolisColor] CGColor],
                (id)[[UIColor lightKinepolisColor] CGColor],
                (id)[[UIColor lightKinepolisColor] CGColor],
                (id)[[UIColor darkKinepolisColor] CGColor],
                nil];
layer.locations = [NSArray arrayWithObjects:
                   [NSNumber numberWithFloat:0.00],
                   [NSNumber numberWithFloat:0.01],
                   [NSNumber numberWithFloat:0.95],
                   [NSNumber numberWithFloat:1.0],
                   nil];

这里使用它像

_gradientLayer.locations = @[@0.00f, @0.01f, @0.95f, @1.00f];
_gradientLayer.colors = @[(id)[[UIColor darkKinepolisColor] CGColor],
            (id)[[UIColor lightKinepolisColor] CGColor],
            (id)[[UIColor lightKinepolisColor] CGColor],
            (id)[[UIColor darkKinepolisColor] CGColor]];

旧方法的数组被新注释替换