如何在范围内的结构中保留数组?

时间:2012-02-04 08:18:02

标签: objective-c struct scope

我已经声明了一个结构如下:

struct Hex
{
    CGPoint center;
    CGPoint points[6];
    CGFloat width;
    CGFloat sideLength;
};

我有一个初始化Hex的工厂方法并返回它,就像这样(为了简洁省略了CGPointMake调用的内容):

struct Hex hex =
{
    CGPointMake(..),
    {
        CGPointMake(..), 
        CGPointMake(..),
        CGPointMake(..),
        CGPointMake(..),
        CGPointMake(..),
        CGPointMake(..)
    },
    width,
    S
};

return hex;

如果我在return语句处中断并检查hex,我看到第一个成员 - CGPoint center - 完好无损,但数组的元素都被列为“超出范围”。

如何构建并返回此结构,以使其数组成员的内容保持不变?

1 个答案:

答案 0 :(得分:1)

这个“超出范围”只是讨论调试器显示器自动跟踪的内容,而不是构建的错误(假设您使用调试信息构建)。

幸运的是,您可以告诉gdb评估表达式。

例如,如果您处于可执行“十六进制”的执行点,请单击xcode调试器中的GDB提示符并键入“print hex.points [0]”,它应该为您提供值。