在整个应用程序中使用 1 个变量,我在哪里初始化它?
Posted
技术标签:
【中文标题】在整个应用程序中使用 1 个变量,我在哪里初始化它?【英文标题】:Use 1 variable throughout the entire app and where do i initialize it? 【发布时间】:2011-09-08 03:17:10 【问题描述】:我有一个应用程序,第一页上有一个按钮,用户可以设置第二页上的图像。 要切换页面,我使用的代码是:
- (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 方法中使用购物车(而不是购物车 2)。我怎样才能做到这一点?因为如果我尝试只用购物车切换购物车 2 并且我删除了该行:
MyCartViewController * cart2 = [[MyCartViewController alloc]init];
当我尝试切换页面时应用程序崩溃。如何对两种方法使用相同的变量?谢谢大家!
【问题讨论】:
【参考方案1】:- (IBAction)myCart:(id)sender
MyCartViewController * cart2 = [[MyCartViewController alloc]init];
cart2.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:cart2 animated:YES];
[cart2 release];
cart2
是局部引用变量,不能在方法myCart
之外持续存在。而是将其声明为接口变量的一部分并在init
方法中对其进行初始化。不要忘记在你释放所有接口成员变量的最后释放它(在dealloc
中)。
【讨论】:
好的。您如何建议我在init
方法中初始化变量?我对编程很陌生。这仍然有效吗?因为当我删除方法中的第一行并尝试将其放入接口文件时,应用程序在尝试切换页面时崩溃。非常感谢您的帮助!
你刚刚帮我找出了一个我已经有大约一周的错误,我只想说非常感谢!!!!!!!!!!!!! :D
没问题。希望你明白你的错误:)
我确实做到了!我完全只是学到了一些新东西。我现在意识到我必须在 init
方法中初始化 ivars 而不是在方法中才能在整个应用程序中使用它们!非常感谢!以上是关于在整个应用程序中使用 1 个变量,我在哪里初始化它?的主要内容,如果未能解决你的问题,请参考以下文章
成员变量得到一个随机值,即使我在构造函数中初始化它 - 为什么?