我想在c样式数组中创建一个CGPoints的常量数组。
我从这开始,但得到了错误Initializer element is not a compile time constant
static CGPoint locations[5] =
{
CGPointMake(180, 180),
CGPointMake(300, 130),
CGPointMake(435, 120),
CGPointMake(470, 230),
CGPointMake(565, 200),
};
我删除static
认为可能与此有关,但错误仍然存在。
如何创建CGPoints数组(更广泛地说,任何类似定义的结构)。
<子> 注意:我已经发布了这个问题并且部分回答了我自己的参考,因为我无法记住这个问题并浪费太多时间来研究其他来源的答案。这里希望它能帮到别人! 子>
答案 0 :(得分:3)
事实证明CGPointMake
函数调用是“不是编译时常量”的东西,因此需要将CGPoints视为原始结构:
static CGPoint locations[5] =
{
(CGPoint){180, 180},
(CGPoint){300, 130},
(CGPoint){435, 120},
(CGPoint){470, 230},
(CGPoint){565, 200},
};
演员表并不是严格要求,但为了我自己的理智,我会保留它以显示这些数字中的每一个实际上都是CGPoint的一部分。这也是有效的:
static CGPoint locations[5] = {
{180, 180},
{300, 130},
{435, 120},
{470, 230},
{565, 200},
};
答案 1 :(得分:0)
调用函数始终是运行时活动。需要在编译时计算数组初始值设定项列表的内容。