在整个应用程序中使用1个变量,我在哪里初始化它?

时间:2011-09-08 03:17:10

标签: iphone ios xcode uibutton instance-variables

我有一个应用程序,在第一页上是一个按钮,用户可以设置第二页上的图像。 要切换页面,我使用的代码是:

- (IBAction)myCart:(id)sender; {
MyCartViewController * cart2 = [[MyCartViewController alloc]init];
cart2.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:cart2 animated:YES];
[cart2 release];

}

我还有另一种方法,允许用户按下按钮并设置图像。

- (IBAction)outlet1 {
cart.displayImage = YES; 

}

cart是在.h文件中创建的ivar,因此我可以在整个文件中使用它。我的问题是我需要能够在myCart方法中使用cart(而不是cart2)。我怎样才能做到这一点?因为如果我尝试用推车切换cart2,我删除该行:  MyCartViewController * cart2 = [[MyCartViewController alloc]init];

当我尝试切换页面时,应用程序崩溃了。我怎样才能为这两种方法使用相同的变量?谢谢大家!

1 个答案:

答案 0 :(得分:1)

- (IBAction)myCart:(id)sender {
     MyCartViewController * cart2 = [[MyCartViewController alloc]init];
     cart2.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
     [self presentModalViewController:cart2 animated:YES];
      [cart2 release];
}

cart2是本地引用变量,不能超出方法myCart。而是将其声明为接口变量的一部分,并在init方法中初始化它。不要忘记最后在释放所有接口成员变量的末尾发布它(在dealloc中)。