-1

我正在尝试创建一个调试类菜单,在其中我将一个变量传递给一个函数,它会创建按钮来调整变量和要显示的标签。我正在尝试将变量存储在一个数组中,如下所示:

(void)init
{
    int variableArray[10];
}

-(void)addDebugVariable:(NSString*)name value:(int*)variable
{
    variableArray[0] = variable;
}

-(void)plusButtonTapped:(CCMenuItem*)button
{
    int index = (int)[button tag];
    debugVariables[index]++;
    [debugValueLabels[index] setString:[NSString stringWithFormat:@"%f", debugVariables[index]]];
}

我用这种方法遇到了两个问题。当我按下加号按钮时,变量增加了 4 而不是 1。我也无法将属性变量传递给我的函数(例如:self.scale、self.gravity)。

这是实现调试类的正确方法吗?当按下按钮时,如何正确存储变量的地址并从另一个类修改它。

4

1 回答 1

2

您发布的代码不可能工作,并且太混乱以至于任何人都无法帮助您。看起来你只是在张贴零碎的东西。

您的 init 方法正在定义一个局部变量 variableArray,一旦 init 例程完成,它将不复存在。

然后你有另一个方法,addDebugVariable,它将一个指针指向一个 int,并将它分配给另一个变量的索引 0,该变量也称为 variableArray。那个 variableArray 在哪里定义?它是您类的实例变量吗?如果你想给它分配一个整数值,你应该使用这样的代码:

variableArray[0] = *variable;

addDebugVariable 方法接受一个你从不使用的字符串。这是为了什么?

然后在您的第三种方法 plusButtonTapped 中,更改另一个您从未提及的数组变量 debugVariables。您说该值增加了 4。这通常意味着您正在处理指针变量而不是标量变量。debugVariables 是如何声明的?

最后,在 plusButtonTapped 中,您在格式字符串中使用了“%f”。那是给花车的。我以为你在处理整数数组?

于 2012-06-13T02:05:24.910 回答