我可以在两种方法中使用相同的变量吗?

时间:2011-09-26 16:25:28

标签: objective-c ios

我希望这个问题对于有人帮助我来说并不太基础。

我有一个变量是我在一个方法中定义的值,我想在另一个方法中使用和操作。这可能吗?

我希望附带的简单示例代码会有所帮助 我希望'c'的值为3,但它只有2.

int a = 0;

-(void)method1  {
int a = 1;
NSLog(@"method 1--> a = %d", a);
}


-(void)method2  {
int b = 2;
NSLog(@"method 2--> b = %d", b);
int c = a + b;
NSLog(@"method 2--> c = %d", c);    
}

2 个答案:

答案 0 :(得分:1)

方法1中的

int a = 1声明了与全局声明的“a”不同的新局部变量。如果你想在这里使用全局'a' - 在这里省略'int'。这将把初始化的局部变量'a'的声明转换为全局声明的'a'。

答案 1 :(得分:0)

好的,它对你有用。

您已在本地函数中重新声明了全局变量。这不是问题,但您应该知道,不会使用全局值,并且在完成功能后,全局值将变为相同。

因此,如果你想在两种方法中操纵变量,它们都应该是全局的。像这样:

int a = 0;

-(void)method1  {
// int a = 1; Now it is local and will not be changed, after function finishing.
a = 1; // Now it is local, so will stay 1 after the end of method.
NSLog(@"method 1--> a = %d", a);
}


-(void)method2  {
int b = 2;
NSLog(@"method 2--> b = %d", b);
int c = a + b;
NSLog(@"method 2--> c = %d", c);    
}