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

时间:2012-06-13 01:37:26

标签: objective-c

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

(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)。

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

1 个答案:

答案 0 :(得分:2)

您发布的代码无法正常运行,并且对于任何人都无法帮助您而感到困惑。看起来你只是张贴点点滴滴。

你的init方法定义了一个局部变量variableArray,它会在init例程结束后立即停止存在。

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

variableArray[0] = *variable;

addDebugVariable方法接受一个你从不做任何事情的字符串。这是为了什么?

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

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