启动一个包含许多不同数字的浮点数

时间:2012-02-29 02:59:01

标签: iphone objective-c floating-point

这是我的代码:

CGFloat buttonGradient1Colors [] = { 
        [gradient1TopColor ], 1.0, 1.0, 0.16,
        0.0, 0.0, 0.0, 0.11
    };

但是我想添加一个if语句,其中float根据某些东西改变它的值,所以我需要事先设置CGFloat。我试过了:

CGFloat buttonGradient1Colors;

CGFloat buttonGradient1Colors [];

但是第二个在线上给了我一个错误,第一个给了我一个错误。有什么想法吗?

编辑:

所以现在我有了这个:

CGFloat buttonGradient1Colors [8];

    buttonGradient1Colors [8] = { 
        1.0, 1.0, 1.0, 0.16,
        0.0, 0.0, 0.0, 0.11
    };

但它在第二行给出了'预期表达'错误。

2 个答案:

答案 0 :(得分:1)

初始化阵列时,您只能分配多个值:

CGFloat[] myFloats = { 1.0, 2.5, 3.6 };

不幸的是,这不起作用:

CGFloat[3] myFloats;
myFloats = { 2.2, 3.5, 4.7 }; // error!

如果条件相当简单,你可以使用三元运算符在“一行”上完成所有操作:

CGFloat[] myFloats = {
  (someBoolean ? 1.0 : 2.0),
  ([someObject message] == 2 ? 2.2 : 3.3),
  (someInt > 10 ? 4.5 : 8.0)
};

哦,还有一点需要注意:如果您使用值初始化C数组,则必须给出大小;编译器会搞清楚。

答案 1 :(得分:0)

创建C数组时必须指定大小。

如果要更改值。你可以这样做

CGFloat buttonGradient1Colors[8] = {1.0, 1.0, 1.0, 0.16, 0.0, 0.0, 0.0, 0.11};
if (condition)  {
    buttonGradient1Colors[index] = newValue;
    ...
}