[英]Creating a c-array of CGPoints
我想在ac样式数组中创建一个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数组(更广泛地说,是任何类似定义的结构)。
注意:我已经部分张贴了这个问题和答案,以供我自己参考,因为我永远都记不起这个问题,并且浪费了太多时间来研究其他来源的答案。 希望对其他人有所帮助!
事实证明, 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},
};
调用函数始终是运行时活动。 数组初始化器列表的内容需要在编译时计算。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.