这是我的代码:
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
};
但它在第二行给出了'预期表达'错误。
答案 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;
...
}