ObjC:将变量作为引用存储在数组中



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

(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]]];
}

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

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

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

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

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

variableArray[0] = *variable;

方法addDebugVariable接受一个你永远不会做任何事情的字符串。这是干什么用的?

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

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

最新更新